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


-- | Standard spec's for binary-related Instances
--   
--   Standard spec's for cereal-related Instances, see
--   <a>https://hackage.haskell.org/package/binary</a>.
@package genvalidity-hspec-binary
@version 0.1.0.0


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

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

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

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

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

-- | <pre>
--   encodeAndDecodeAreInversesOnGen @Bool arbitrary shrinkValid
--   </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, Binary a) => Gen a -> (a -> [a]) -> Property
