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


-- | Standard spec's for cereal-related instances
--   
--   Standard spec's for cereal-related Instances
@package genvalidity-hspec-cereal
@version 0.2.0.2


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

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

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

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

-- | Standard test spec for properties of <a>Serialize</a>-related
--   functions for a given generator (and a name for that generator).
--   
--   Example usage:
--   
--   <pre>
--   serializeSpecOnGen (genListOf $ pure 'a') "sequence of 'a's"
--   </pre>
serializeSpecOnGen :: forall a. (Show a, Eq a, Typeable a, Serialize 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, Serialize 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, Serialize a) => Gen a -> (a -> [a]) -> Property
