-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Standard spec's for aeson-related instances
--   
--   Standard spec's for aeson-related Instances
@package genvalidity-hspec-aeson
@version 0.3.0.1


-- | Standard test <a>Spec</a>s and raw <a>Property</a>s for
--   <a>FromJSON</a> and <a>ToJSON</a> instances.
--   
--   You will need <tt>TypeApplications</tt> to use these.
module Test.Validity.Aeson

-- | Standard test spec for properties of JSON-related functions for valid
--   values
--   
--   Example usage:
--   
--   <pre>
--   jsonSpecOnValid @Rational
--   </pre>
jsonSpecOnValid :: forall a. (Show a, Eq a, Typeable a, GenValid a, FromJSON a, ToJSON a) => Spec

-- | Standard test spec for properties of JSON-related functions for
--   unchecked values
--   
--   Example usage:
--   
--   <pre>
--   jsonSpec @Int
--   </pre>
jsonSpec :: forall a. (Show a, Eq a, Typeable a, GenUnchecked a, FromJSON a, ToJSON a) => Spec

-- | Standard test spec for properties of JSON-related functions for
--   arbitrary values
--   
--   Example usage:
--   
--   <pre>
--   jsonSpecOnArbitrary @Int
--   </pre>
jsonSpecOnArbitrary :: forall a. (Show a, Eq a, Typeable a, Arbitrary a, FromJSON a, ToJSON a) => Spec

-- | Standard test spec for properties of JSON-related functions for a
--   given generator (and a name for that generator).
--   
--   Example usage:
--   
--   <pre>
--   jsonSpecOnGen (genListOf $ pure 'a') "sequence of 'a's"
--   </pre>
jsonSpecOnGen :: forall a. (Show a, Eq a, Typeable a, FromJSON a, ToJSON a) => Gen a -> String -> (a -> [a]) -> Spec

-- | <pre>
--   neverFailsToEncodeOnGen @Bool arbitrary shrink
--   </pre>
--   
--   <pre>
--   neverFailsToEncodeOnGen @Bool genUnchecked shrinkUnchecked
--   </pre>
--   
--   <pre>
--   neverFailsToEncodeOnGen @Bool genValid shrinkValid
--   </pre>
--   
--   <pre>
--   neverFailsToEncodeOnGen @Int arbitrary shrink
--   </pre>
--   
--   <pre>
--   neverFailsToEncodeOnGen @Int genUnchecked shrinkUnchecked
--   </pre>
--   
--   <pre>
--   neverFailsToEncodeOnGen @Int genValid shrinkValid
--   </pre>
neverFailsToEncodeOnGen :: (Show a, ToJSON a) => Gen a -> (a -> [a]) -> Property

-- | <pre>
--   encodeAndDecodeAreInversesOnGen @Bool arbitrary shrink
--   </pre>
--   
--   <pre>
--   encodeAndDecodeAreInversesOnGen @Bool genUnchecked shrinkUnchecked
--   </pre>
--   
--   <pre>
--   encodeAndDecodeAreInversesOnGen @Bool genValid shrinkValid
--   </pre>
--   
--   <pre>
--   encodeAndDecodeAreInversesOnGen @Int arbitrary shrink
--   </pre>
--   
--   <pre>
--   encodeAndDecodeAreInversesOnGen @Int genUnchecked shrinkUnchecked
--   </pre>
--   
--   <pre>
--   encodeAndDecodeAreInversesOnGen @Int genValid shrinkValid
--   </pre>
encodeAndDecodeAreInversesOnGen :: (Show a, Eq a, FromJSON a, ToJSON a) => Gen a -> (a -> [a]) -> Property
