hedgehog-1.2: Release with confidence.
Safe Haskell None
Language Haskell2010

Hedgehog.Internal.Tripping

Synopsis

Documentation

tripping :: ( MonadTest m, Applicative f, Show b, Show (f a), Eq (f a), HasCallStack ) => a -> (a -> b) -> (b -> f a) -> m () Source #

Test that a pair of encode / decode functions are compatible.

Given a printer from some type a -> b , and a parser with a potential failure case b -> f a . Ensure that a valid a round trips through the "print" and "parse" to yield the same a .

For example, types should have tripping Read and Show instances:

trippingShowRead :: (Show a, Read a, Eq a, MonadTest m) => a -> m ()
trippingShowRead a = tripping a show readEither