-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | QuickCheck common typeclasses
--
-- QuickCheck common typeclasses
@package quickcheck-classes
@version 0.2
module Test.QuickCheck.Classes
primProps :: (Prim a, Eq a, Arbitrary a, Show a) => Proxy a -> [(String, Property)]
storableProps :: (Storable a, Eq a, Arbitrary a, Show a) => Proxy a -> [(String, Property)]
-- | Tests the following properties:
--
--
-- - Associative a <> (b <> c) ≡ (a
-- <> b) <> c
--
semigroupProps :: (Semigroup a, Eq a, Arbitrary a, Show a) => Proxy a -> [(String, Property)]
-- | Tests the following properties:
--
--
-- - Associative mappend a (mappend b c) ≡ mappend
-- (mappend a b) c
-- - Left Identity mappend mempty a ≡ a
-- - Right Identity mappend a mempty ≡ a
--
monoidProps :: (Monoid a, Eq a, Arbitrary a, Show a) => Proxy a -> [(String, Property)]
showReadProps :: (Show a, Read a, Eq a, Arbitrary a) => Proxy a -> [(String, Property)]
jsonProps :: (ToJSON a, FromJSON a, Show a, Arbitrary a, Eq a) => Proxy a -> [(String, Property)]
-- | Tests the following properties:
--
--
-- - Transitive a == b ∧ b == c ⇒ a == c
-- - Symmetric a == b ⇒ b == a
--
--
-- Some of these properties involve implication. In the case that the
-- left hand side of the implication arrow does not hold, we do not
-- retry. Consequently, these properties only end up being useful when
-- the data type has a small number of inhabitants.
eqProps :: (Eq a, Arbitrary a, Show a) => Proxy a -> [(String, Property)]
-- | Tests the following applicative properties:
--
--
functorProps :: (Functor f, Eq1 f, Show1 f, Arbitrary1 f) => Proxy f -> [(String, Property)]
-- | Tests the following applicative properties:
--
--
applicativeProps :: (Applicative f, Eq1 f, Show1 f, Arbitrary1 f) => Proxy f -> [(String, Property)]
-- | Tests the following monadic properties:
--
--
monadProps :: (Monad f, Eq1 f, Show1 f, Arbitrary1 f) => Proxy f -> [(String, Property)]
instance GHC.Classes.Eq Test.QuickCheck.Classes.Equation
instance GHC.Classes.Eq Test.QuickCheck.Classes.LinearEquation
instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq a) => GHC.Classes.Eq (Test.QuickCheck.Classes.Apply f a)
instance Data.Functor.Classes.Eq1 m => GHC.Classes.Eq (Test.QuickCheck.Classes.LinearEquationM m)
instance Data.Functor.Classes.Show1 m => GHC.Show.Show (Test.QuickCheck.Classes.LinearEquationM m)
instance Test.QuickCheck.Arbitrary.Arbitrary1 m => Test.QuickCheck.Arbitrary.Arbitrary (Test.QuickCheck.Classes.LinearEquationM m)
instance Test.QuickCheck.Arbitrary.Arbitrary Test.QuickCheck.Classes.LinearEquation
instance GHC.Show.Show Test.QuickCheck.Classes.Equation
instance Test.QuickCheck.Arbitrary.Arbitrary Test.QuickCheck.Classes.Equation
instance (Data.Functor.Classes.Show1 f, GHC.Show.Show a) => GHC.Show.Show (Test.QuickCheck.Classes.Apply f a)
instance (Test.QuickCheck.Arbitrary.Arbitrary1 f, Test.QuickCheck.Arbitrary.Arbitrary a) => Test.QuickCheck.Arbitrary.Arbitrary (Test.QuickCheck.Classes.Apply f a)