-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Standard properties for functions on `Validity` types -- -- Standard properties for functions on Validity types @package genvalidity-property @version 0.2.0.2 -- | Standard tests involving validity module Test.Validity.Functions.Idempotence idempotentOnGen :: (Show a, Eq a) => (a -> a) -> Gen a -> (a -> [a]) -> Property idempotentOnValid :: (Show a, Eq a, GenValid a) => (a -> a) -> Property idempotent :: (Show a, Eq a, GenUnchecked a) => (a -> a) -> Property -- | id is idempotent for any type: -- --
--   idempotentOnArbitrary (id :: Int -> Int)
--   
-- -- const, given any input, is idempotent for any type as well: -- --
--   \int -> idempotentOnArbitrary (const int :: Int -> Int)
--   
idempotentOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a) -> Property -- | Tests for GenValidity instances module Test.Validity.GenValidity.Property -- | The given generator generates only valid data points genGeneratesValid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property -- | The given generator generates only invalid data points genGeneratesInvalid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property module Test.Validity.Operations.Associativity -- | <math> associativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a, a) -> ((a, a, a) -> [(a, a, a)]) -> Property associativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   associative ((*) :: Int -> Int -> Int)
--   
-- --
--   associative ((+) :: Int -> Int -> Int)
--   
associative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   associativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
-- --
--   associativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
associativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property module Test.Validity.Operations.Commutativity -- | <math> commutativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a) -> ((a, a) -> [(a, a)]) -> Property -- |
--   commutative ((+) :: Double -> Double -> Double)
--   
-- --
--   commutative ((*) :: Double -> Double -> Double)
--   
commutativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   commutative ((+) :: Int -> Int -> Int)
--   
-- --
--   commutative ((*) :: Int -> Int -> Int)
--   
commutative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   commutativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
-- --
--   commutativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
commutativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property module Test.Validity.Operations.Identity -- | <math> leftIdentityOnElemWithEquality :: (b -> a -> a) -> (a -> a -> Bool) -> b -> a -> Bool leftIdentityOnGenWithEquality :: Show a => (b -> a -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property leftIdentityOnGen :: (Show a, Eq a) => (b -> a -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   leftIdentityOnValid (flip ((^) :: Double -> Int -> Double)) 1
--   
leftIdentityOnValid :: (Show a, Eq a, GenValid a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentity (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentity :: (Show a, Eq a, GenUnchecked a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentityOnArbitrary (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (b -> a -> a) -> b -> Property -- | <math> rightIdentityOnElemWithEquality :: (a -> b -> a) -> (a -> a -> Bool) -> b -> a -> Bool rightIdentityOnGenWithEquality :: Show a => (a -> b -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property rightIdentityOnGen :: (Show a, Eq a) => (a -> b -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   rightIdentityOnValid ((^) :: Double -> Int -> Double) 1
--   
rightIdentityOnValid :: (Show a, Eq a, GenValid a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentity ((^) :: Int -> Int -> Int) 1
--   
rightIdentity :: (Show a, Eq a, GenUnchecked a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentityOnArbitrary ((^) :: Int -> Int -> Int) 1
--   
rightIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b -> a) -> b -> Property -- | <math> identityOnGen :: (Show a, Eq a) => (a -> a -> a) -> a -> Gen a -> (a -> [a]) -> Property -- |
--   identityOnValid ((*) :: Double -> Double -> Double) 1
--   
-- --
--   identityOnValid ((+) :: Double -> Double -> Double) 0
--   
identityOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> a -> Property -- |
--   identity ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identity ((+) :: Int -> Int -> Int) 0
--   
identity :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> a -> Property -- |
--   identityOnArbitrary ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identityOnArbitrary ((+) :: Int -> Int -> Int) 0
--   
identityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> a -> Property -- | Properties of operations module Test.Validity.Operations -- | <math> leftIdentityOnElemWithEquality :: (b -> a -> a) -> (a -> a -> Bool) -> b -> a -> Bool leftIdentityOnGenWithEquality :: Show a => (b -> a -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property leftIdentityOnGen :: (Show a, Eq a) => (b -> a -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   leftIdentityOnValid (flip ((^) :: Double -> Int -> Double)) 1
--   
leftIdentityOnValid :: (Show a, Eq a, GenValid a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentity (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentity :: (Show a, Eq a, GenUnchecked a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentityOnArbitrary (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (b -> a -> a) -> b -> Property -- | <math> rightIdentityOnElemWithEquality :: (a -> b -> a) -> (a -> a -> Bool) -> b -> a -> Bool rightIdentityOnGenWithEquality :: Show a => (a -> b -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property rightIdentityOnGen :: (Show a, Eq a) => (a -> b -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   rightIdentityOnValid ((^) :: Double -> Int -> Double) 1
--   
rightIdentityOnValid :: (Show a, Eq a, GenValid a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentity ((^) :: Int -> Int -> Int) 1
--   
rightIdentity :: (Show a, Eq a, GenUnchecked a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentityOnArbitrary ((^) :: Int -> Int -> Int) 1
--   
rightIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b -> a) -> b -> Property -- | <math> identityOnGen :: (Show a, Eq a) => (a -> a -> a) -> a -> Gen a -> (a -> [a]) -> Property -- |
--   identityOnValid ((*) :: Double -> Double -> Double) 1
--   
-- --
--   identityOnValid ((+) :: Double -> Double -> Double) 0
--   
identityOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> a -> Property -- |
--   identity ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identity ((+) :: Int -> Int -> Int) 0
--   
identity :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> a -> Property -- |
--   identityOnArbitrary ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identityOnArbitrary ((+) :: Int -> Int -> Int) 0
--   
identityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> a -> Property -- | <math> associativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a, a) -> ((a, a, a) -> [(a, a, a)]) -> Property associativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   associative ((*) :: Int -> Int -> Int)
--   
-- --
--   associative ((+) :: Int -> Int -> Int)
--   
associative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   associativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
-- --
--   associativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
associativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property -- | <math> commutativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a) -> ((a, a) -> [(a, a)]) -> Property -- |
--   commutative ((+) :: Double -> Double -> Double)
--   
-- --
--   commutative ((*) :: Double -> Double -> Double)
--   
commutativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   commutative ((+) :: Int -> Int -> Int)
--   
-- --
--   commutative ((*) :: Int -> Int -> Int)
--   
commutative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   commutativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
-- --
--   commutativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
commutativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property module Test.Validity.Property.Utils forAllUnchecked :: (Show a, GenUnchecked a, Testable prop) => (a -> prop) -> Property forAllValid :: (Show a, GenValid a, Testable prop) => (a -> prop) -> Property forAllInvalid :: (Show a, GenInvalid a, Testable prop) => (a -> prop) -> Property shouldBeValid :: (Show a, Validity a) => a -> Expectation shouldBeInvalid :: (Show a, Validity a) => a -> Expectation (<==>) :: Bool -> Bool -> Bool (===>) :: Bool -> Bool -> Bool -- | Standard tests involving validity module Test.Validity.Functions.Validity -- | The function produces valid output when the input is generated as -- specified by the given generator. producesValidsOnGen :: forall a b. (Show a, Show b, Validity b) => (a -> b) -> Gen a -> (a -> [a]) -> Property -- | The function produces valid output when the input is generated by -- genValid producesValidsOnValids :: (Show a, Show b, GenValid a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- genUnchecked producesValid :: (Show a, Show b, GenUnchecked a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- arbitrary producesValidsOnArbitrary :: (Show a, Show b, Arbitrary a, Validity b) => (a -> b) -> Property producesValidsOnGens2 :: (Show a, Show b, Show c, Validity c) => (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property producesValidsOnValids2 :: (Show a, Show b, Show c, GenValid a, GenValid b, Validity c) => (a -> b -> c) -> Property producesValid2 :: (Show a, Show b, Show c, GenUnchecked a, GenUnchecked b, Validity c) => (a -> b -> c) -> Property producesValidsOnArbitrary2 :: (Show a, Show b, Show c, Arbitrary a, Arbitrary b, Validity c) => (a -> b -> c) -> Property producesValidsOnGens3 :: (Show a, Show b, Show c, Show d, Validity d) => (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property producesValidsOnValids3 :: (Show a, Show b, Show c, Show d, GenValid a, GenValid b, GenValid c, Validity d) => (a -> b -> c -> d) -> Property producesValid3 :: (Show a, Show b, Show c, Show d, GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d) => (a -> b -> c -> d) -> Property producesValidsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Arbitrary a, Arbitrary b, Arbitrary c, Validity d) => (a -> b -> c -> d) -> Property module Test.Validity.Relations.Antireflexivity -- | <math> antireflexiveOnElem :: (a -> a -> Bool) -> a -> Bool antireflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   antireflexivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((/=) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((>) :: Double -> Double -> Bool)
--   
antireflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antireflexivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((>) :: Int -> Int -> Bool)
--   
antireflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
antireflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property module Test.Validity.Relations.Antisymmetry -- | <math> antisymmetricOnElemsWithEquality :: (a -> a -> Bool) -> (a -> a -> Bool) -> a -> a -> Bool antisymmetryOnGensWithEquality :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> a -> Bool) -> (a -> [a]) -> Property antisymmetryOnGens :: (Show a, Eq a) => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   antisymmetryOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
antisymmetryOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antisymmetry ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetry :: (Show a, Eq a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetryOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> Bool) -> Property module Test.Validity.Relations.Reflexivity -- | <math> reflexiveOnElem :: (a -> a -> Bool) -> a -> Bool reflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   reflexivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
reflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   reflexivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property module Test.Validity.Relations.Symmetry -- | <math> symmetricOnElems :: (a -> a -> Bool) -> a -> a -> Bool symmetryOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   symmetryOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   symmetryOnValid ((/=) :: Double -> Double -> Bool)
--   
symmetryOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   symmetry ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetry ((/=) :: Int -> Int -> Bool)
--   
symmetry :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   symmetryOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetryOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
symmetryOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property module Test.Validity.Relations.Transitivity -- | <math> transitiveOnElems :: (a -> a -> Bool) -> a -> a -> a -> Bool transitivityOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a, a) -> (a -> [a]) -> Property -- |
--   transitivityOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
transitivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   transitivity ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   transitivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | Properties of relations module Test.Validity.Relations -- | <math> reflexiveOnElem :: (a -> a -> Bool) -> a -> Bool reflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   reflexivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
reflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   reflexivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> transitiveOnElems :: (a -> a -> Bool) -> a -> a -> a -> Bool transitivityOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a, a) -> (a -> [a]) -> Property -- |
--   transitivityOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
transitivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   transitivity ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   transitivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> antisymmetricOnElemsWithEquality :: (a -> a -> Bool) -> (a -> a -> Bool) -> a -> a -> Bool antisymmetryOnGensWithEquality :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> a -> Bool) -> (a -> [a]) -> Property antisymmetryOnGens :: (Show a, Eq a) => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   antisymmetryOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
antisymmetryOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antisymmetry ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetry :: (Show a, Eq a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetryOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> antireflexiveOnElem :: (a -> a -> Bool) -> a -> Bool antireflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   antireflexivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((/=) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((>) :: Double -> Double -> Bool)
--   
antireflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antireflexivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((>) :: Int -> Int -> Bool)
--   
antireflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
antireflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> symmetricOnElems :: (a -> a -> Bool) -> a -> a -> Bool symmetryOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   symmetryOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   symmetryOnValid ((/=) :: Double -> Double -> Bool)
--   
symmetryOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   symmetry ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetry ((/=) :: Int -> Int -> Bool)
--   
symmetry :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   symmetryOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetryOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
symmetryOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | Tests for shrinking functions module Test.Validity.Shrinking.Property -- |
--   shrinkPreservesValidOnGenValid (:[])
--   
shrinkPreservesValidOnGenValid :: forall a. (Show a, GenValid a) => (a -> [a]) -> Property -- |
--   shrinkPreservesInvalidOnGenInvalid (:[])
--   
shrinkPreservesInvalidOnGenInvalid :: forall a. (Show a, GenInvalid a) => (a -> [a]) -> Property -- |
--   shrinkValidPreservesValid (pure 5)
--   
shrinkValidPreservesValid :: forall a. (Show a, GenValid a) => Gen a -> Property -- |
--   shrinkInvalidPreservesInvalid (pure (1/0) :: Gen Double)
--   
shrinkInvalidPreservesInvalid :: forall a. (Show a, GenInvalid a) => Gen a -> Property -- |
--   shrinkingStaysValid (pure 5 :: Gen Double) (\d -> [d - 1, d - 2])
--   
shrinkingStaysValid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property -- |
--   shrinkingStaysInvalid (pure (1/0) :: Gen Double) (:[])
--   
shrinkingStaysInvalid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property -- |
--   shrinkingPreserves (pure 5) (:[]) (== 5)
--   
shrinkingPreserves :: forall a. Show a => Gen a -> (a -> [a]) -> (a -> Bool) -> Property module Test.Validity.Types -- | A class of types that are the result of functions that can fail class CanFail f hasFailed :: CanFail f => f a -> Bool resultIfSucceeded :: CanFail f => f a -> Maybe a instance Test.Validity.Types.CanFail GHC.Base.Maybe instance Test.Validity.Types.CanFail (Data.Either.Either e) -- | Standard tests involving inverse functions module Test.Validity.Functions.Inverse inverseFunctionsOnGen :: (Show a, Eq a) => (a -> b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsOnValid :: (Show a, Eq a, GenValid a) => (a -> b) -> (b -> a) -> Property inverseFunctions :: (Show a, Eq a, GenUnchecked a) => (a -> b) -> (b -> a) -> Property -- | id is its own inverse function for every type: prop> -- inverseFunctionsOnArbitrary id (id :: Int -> Int) inverseFunctionsOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> f b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfSecondSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> b) -> (b -> f a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSucceedOnGen :: (Show a, Eq a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSucceedOnValid :: (Show a, Eq a, GenValid a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceed :: (Show a, Eq a, GenUnchecked a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property module Test.Validity.Functions.Equivalence equivalentOnGen :: (Show a, Eq a, Show b, Eq b) => (a -> b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalent :: (Show a, Eq a, GenUnchecked a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property -- |
--   equivalentOnArbitrary ((* 2) . (+ 1)) ((+ 2) . (* 2) :: Int -> Int)
--   
equivalentOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalentOnGens2 :: (Show a, Show b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentOnValids2 :: (Show a, GenValid a, Show b, GenValid b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalent2 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property -- |
--   equivalentOnArbitrary2 (+) ((+) :: Int -> Int -> Int)
--   
equivalentOnArbitrary2 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentWhenFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenFirstSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenSecondSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSecondSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSucceedOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceed :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSucceedOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceed2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentOnGens3 :: (Show a, Show b, Show c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property equivalentOnValids3 :: (Show a, GenValid a, Show b, GenValid b, Show c, GenValid c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalent3 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, GenUnchecked c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalentOnArbitrary3 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Arbitrary c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property module Test.Validity.Functions.CanFail -- | The function succeeds if the input is generated by the given generator succeedsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function succeeds if the input is generated by genValid succeedsOnValid :: (Show a, Show b, Show (f b), GenValid a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by -- genUnchecked succeeds :: (Show a, Show b, Show (f b), GenUnchecked a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by arbitrary succeedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, CanFail f) => (a -> f b) -> Property succeedsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property succeedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, CanFail f) => (a -> b -> f c) -> Property succeeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, CanFail f) => (a -> b -> f c) -> Property succeedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, CanFail f) => (a -> b -> f c) -> Property -- | The function fails if the input is generated by the given generator failsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function fails if the input is generated by genInvalid failsOnInvalid :: (Show a, Show b, Show (f b), GenInvalid a, CanFail f) => (a -> f b) -> Property failsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen a -> (a -> [a]) -> Gen b -> (b -> [b]) -> Property failsOnInvalid2 :: (Show a, Show b, Show c, Show (f c), GenInvalid a, GenInvalid b, CanFail f) => (a -> b -> f c) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by the given generator. validIfSucceedsOnGen :: (Show a, Show b, Show (f b), Validity b, CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnValid :: (Show a, Show b, Show (f b), GenValid a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by genUnchecked. validIfSucceeds :: (Show a, Show b, Show (f b), GenUnchecked a, Validity b, CanFail f) => (a -> f b) -> Property validIfSucceedsOnGens2 :: (Show a, Show b, Show c, Show (f c), Validity c, CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property validIfSucceedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnGens3 :: (Show a, Show b, Show c, Show d, Show (f d), Validity d, CanFail f) => (a -> b -> c -> f d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property validIfSucceedsOnValids3 :: (Show a, Show b, Show c, Show d, Show (f d), GenValid a, GenValid b, GenValid c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceeds3 :: (Show a, Show b, Show c, Show d, Show (f d), GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceedsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Show (f d), Arbitrary a, Arbitrary b, Arbitrary c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property -- | Validity tests involving functions module Test.Validity.Functions -- | The function produces valid output when the input is generated as -- specified by the given generator. producesValidsOnGen :: forall a b. (Show a, Show b, Validity b) => (a -> b) -> Gen a -> (a -> [a]) -> Property -- | The function produces valid output when the input is generated by -- genValid producesValidsOnValids :: (Show a, Show b, GenValid a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- genUnchecked producesValid :: (Show a, Show b, GenUnchecked a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- arbitrary producesValidsOnArbitrary :: (Show a, Show b, Arbitrary a, Validity b) => (a -> b) -> Property producesValidsOnGens2 :: (Show a, Show b, Show c, Validity c) => (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property producesValidsOnValids2 :: (Show a, Show b, Show c, GenValid a, GenValid b, Validity c) => (a -> b -> c) -> Property producesValid2 :: (Show a, Show b, Show c, GenUnchecked a, GenUnchecked b, Validity c) => (a -> b -> c) -> Property producesValidsOnArbitrary2 :: (Show a, Show b, Show c, Arbitrary a, Arbitrary b, Validity c) => (a -> b -> c) -> Property producesValidsOnGens3 :: (Show a, Show b, Show c, Show d, Validity d) => (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property producesValidsOnValids3 :: (Show a, Show b, Show c, Show d, GenValid a, GenValid b, GenValid c, Validity d) => (a -> b -> c -> d) -> Property producesValid3 :: (Show a, Show b, Show c, Show d, GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d) => (a -> b -> c -> d) -> Property producesValidsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Arbitrary a, Arbitrary b, Arbitrary c, Validity d) => (a -> b -> c -> d) -> Property -- | The function succeeds if the input is generated by the given generator succeedsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function succeeds if the input is generated by genValid succeedsOnValid :: (Show a, Show b, Show (f b), GenValid a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by -- genUnchecked succeeds :: (Show a, Show b, Show (f b), GenUnchecked a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by arbitrary succeedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, CanFail f) => (a -> f b) -> Property succeedsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property succeedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, CanFail f) => (a -> b -> f c) -> Property succeeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, CanFail f) => (a -> b -> f c) -> Property succeedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, CanFail f) => (a -> b -> f c) -> Property -- | The function fails if the input is generated by the given generator failsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function fails if the input is generated by genInvalid failsOnInvalid :: (Show a, Show b, Show (f b), GenInvalid a, CanFail f) => (a -> f b) -> Property failsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen a -> (a -> [a]) -> Gen b -> (b -> [b]) -> Property failsOnInvalid2 :: (Show a, Show b, Show c, Show (f c), GenInvalid a, GenInvalid b, CanFail f) => (a -> b -> f c) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by the given generator. validIfSucceedsOnGen :: (Show a, Show b, Show (f b), Validity b, CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnValid :: (Show a, Show b, Show (f b), GenValid a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by genUnchecked. validIfSucceeds :: (Show a, Show b, Show (f b), GenUnchecked a, Validity b, CanFail f) => (a -> f b) -> Property validIfSucceedsOnGens2 :: (Show a, Show b, Show c, Show (f c), Validity c, CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property validIfSucceedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnGens3 :: (Show a, Show b, Show c, Show d, Show (f d), Validity d, CanFail f) => (a -> b -> c -> f d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property validIfSucceedsOnValids3 :: (Show a, Show b, Show c, Show d, Show (f d), GenValid a, GenValid b, GenValid c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceeds3 :: (Show a, Show b, Show c, Show d, Show (f d), GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceedsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Show (f d), Arbitrary a, Arbitrary b, Arbitrary c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property equivalentOnGen :: (Show a, Eq a, Show b, Eq b) => (a -> b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalent :: (Show a, Eq a, GenUnchecked a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property -- |
--   equivalentOnArbitrary ((* 2) . (+ 1)) ((+ 2) . (* 2) :: Int -> Int)
--   
equivalentOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalentOnGens2 :: (Show a, Show b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentOnValids2 :: (Show a, GenValid a, Show b, GenValid b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalent2 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property -- |
--   equivalentOnArbitrary2 (+) ((+) :: Int -> Int -> Int)
--   
equivalentOnArbitrary2 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentWhenFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenFirstSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenSecondSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSecondSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSucceedOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceed :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSucceedOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceed2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentOnGens3 :: (Show a, Show b, Show c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property equivalentOnValids3 :: (Show a, GenValid a, Show b, GenValid b, Show c, GenValid c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalent3 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, GenUnchecked c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalentOnArbitrary3 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Arbitrary c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property inverseFunctionsOnGen :: (Show a, Eq a) => (a -> b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsOnValid :: (Show a, Eq a, GenValid a) => (a -> b) -> (b -> a) -> Property inverseFunctions :: (Show a, Eq a, GenUnchecked a) => (a -> b) -> (b -> a) -> Property -- | id is its own inverse function for every type: prop> -- inverseFunctionsOnArbitrary id (id :: Int -> Int) inverseFunctionsOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> f b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfSecondSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> b) -> (b -> f a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSucceedOnGen :: (Show a, Eq a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSucceedOnValid :: (Show a, Eq a, GenValid a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceed :: (Show a, Eq a, GenUnchecked a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property idempotentOnGen :: (Show a, Eq a) => (a -> a) -> Gen a -> (a -> [a]) -> Property idempotentOnValid :: (Show a, Eq a, GenValid a) => (a -> a) -> Property idempotent :: (Show a, Eq a, GenUnchecked a) => (a -> a) -> Property -- | id is idempotent for any type: -- --
--   idempotentOnArbitrary (id :: Int -> Int)
--   
-- -- const, given any input, is idempotent for any type as well: -- --
--   \int -> idempotentOnArbitrary (const int :: Int -> Int)
--   
idempotentOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a) -> Property module Test.Validity.Property forAllUnchecked :: (Show a, GenUnchecked a, Testable prop) => (a -> prop) -> Property forAllValid :: (Show a, GenValid a, Testable prop) => (a -> prop) -> Property forAllInvalid :: (Show a, GenInvalid a, Testable prop) => (a -> prop) -> Property -- | The given generator generates only valid data points genGeneratesValid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property -- | The given generator generates only invalid data points genGeneratesInvalid :: forall a. (Show a, Validity a) => Gen a -> (a -> [a]) -> Property -- | The function produces valid output when the input is generated as -- specified by the given generator. producesValidsOnGen :: forall a b. (Show a, Show b, Validity b) => (a -> b) -> Gen a -> (a -> [a]) -> Property -- | The function produces valid output when the input is generated by -- genValid producesValidsOnValids :: (Show a, Show b, GenValid a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- genUnchecked producesValid :: (Show a, Show b, GenUnchecked a, Validity b) => (a -> b) -> Property -- | The function produces valid output when the input is generated by -- arbitrary producesValidsOnArbitrary :: (Show a, Show b, Arbitrary a, Validity b) => (a -> b) -> Property producesValidsOnGens2 :: (Show a, Show b, Show c, Validity c) => (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property producesValidsOnValids2 :: (Show a, Show b, Show c, GenValid a, GenValid b, Validity c) => (a -> b -> c) -> Property producesValid2 :: (Show a, Show b, Show c, GenUnchecked a, GenUnchecked b, Validity c) => (a -> b -> c) -> Property producesValidsOnArbitrary2 :: (Show a, Show b, Show c, Arbitrary a, Arbitrary b, Validity c) => (a -> b -> c) -> Property producesValidsOnGens3 :: (Show a, Show b, Show c, Show d, Validity d) => (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property producesValidsOnValids3 :: (Show a, Show b, Show c, Show d, GenValid a, GenValid b, GenValid c, Validity d) => (a -> b -> c -> d) -> Property producesValid3 :: (Show a, Show b, Show c, Show d, GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d) => (a -> b -> c -> d) -> Property producesValidsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Arbitrary a, Arbitrary b, Arbitrary c, Validity d) => (a -> b -> c -> d) -> Property -- | A class of types that are the result of functions that can fail class CanFail f hasFailed :: CanFail f => f a -> Bool resultIfSucceeded :: CanFail f => f a -> Maybe a -- | The function succeeds if the input is generated by the given generator succeedsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function succeeds if the input is generated by genValid succeedsOnValid :: (Show a, Show b, Show (f b), GenValid a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by -- genUnchecked succeeds :: (Show a, Show b, Show (f b), GenUnchecked a, CanFail f) => (a -> f b) -> Property -- | The function succeeds if the input is generated by arbitrary succeedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, CanFail f) => (a -> f b) -> Property succeedsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property succeedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, CanFail f) => (a -> b -> f c) -> Property succeeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, CanFail f) => (a -> b -> f c) -> Property succeedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, CanFail f) => (a -> b -> f c) -> Property -- | The function fails if the input is generated by the given generator failsOnGen :: (Show a, Show b, Show (f b), CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function fails if the input is generated by genInvalid failsOnInvalid :: (Show a, Show b, Show (f b), GenInvalid a, CanFail f) => (a -> f b) -> Property failsOnGens2 :: (Show a, Show b, Show c, Show (f c), CanFail f) => (a -> b -> f c) -> Gen a -> (a -> [a]) -> Gen b -> (b -> [b]) -> Property failsOnInvalid2 :: (Show a, Show b, Show c, Show (f c), GenInvalid a, GenInvalid b, CanFail f) => (a -> b -> f c) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by the given generator. validIfSucceedsOnGen :: (Show a, Show b, Show (f b), Validity b, CanFail f) => (a -> f b) -> Gen a -> (a -> [a]) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnValid :: (Show a, Show b, Show (f b), GenValid a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by arbitrary. validIfSucceedsOnArbitrary :: (Show a, Show b, Show (f b), Arbitrary a, Validity b, CanFail f) => (a -> f b) -> Property -- | The function produces output that satisfies isValid if it is -- given input that is generated by genUnchecked. validIfSucceeds :: (Show a, Show b, Show (f b), GenUnchecked a, Validity b, CanFail f) => (a -> f b) -> Property validIfSucceedsOnGens2 :: (Show a, Show b, Show c, Show (f c), Validity c, CanFail f) => (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property validIfSucceedsOnValids2 :: (Show a, Show b, Show c, Show (f c), GenValid a, GenValid b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceeds2 :: (Show a, Show b, Show c, Show (f c), GenUnchecked a, GenUnchecked b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnArbitrary2 :: (Show a, Show b, Show c, Show (f c), Arbitrary a, Arbitrary b, Validity c, CanFail f) => (a -> b -> f c) -> Property validIfSucceedsOnGens3 :: (Show a, Show b, Show c, Show d, Show (f d), Validity d, CanFail f) => (a -> b -> c -> f d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property validIfSucceedsOnValids3 :: (Show a, Show b, Show c, Show d, Show (f d), GenValid a, GenValid b, GenValid c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceeds3 :: (Show a, Show b, Show c, Show d, Show (f d), GenUnchecked a, GenUnchecked b, GenUnchecked c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property validIfSucceedsOnArbitrary3 :: (Show a, Show b, Show c, Show d, Show (f d), Arbitrary a, Arbitrary b, Arbitrary c, Validity d, CanFail f) => (a -> b -> c -> f d) -> Property equivalentOnGen :: (Show a, Eq a, Show b, Eq b) => (a -> b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalent :: (Show a, Eq a, GenUnchecked a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property -- |
--   equivalentOnArbitrary ((* 2) . (+ 1)) ((+ 2) . (* 2) :: Int -> Int)
--   
equivalentOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b) => (a -> b) -> (a -> b) -> Property equivalentOnGens2 :: (Show a, Show b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentOnValids2 :: (Show a, GenValid a, Show b, GenValid b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalent2 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property -- |
--   equivalentOnArbitrary2 (+) ((+) :: Int -> Int -> Int)
--   
equivalentOnArbitrary2 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Eq c) => (a -> b -> c) -> (a -> b -> c) -> Property equivalentOnGens3 :: (Show a, Show b, Show c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Gen (a, b, c) -> ((a, b, c) -> [(a, b, c)]) -> Property equivalentOnValids3 :: (Show a, GenValid a, Show b, GenValid b, Show c, GenValid c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalent3 :: (Show a, GenUnchecked a, Show b, GenUnchecked b, Show c, GenUnchecked c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalentOnArbitrary3 :: (Show a, Arbitrary a, Show b, Arbitrary b, Show c, Arbitrary c, Show d, Eq d) => (a -> b -> c -> d) -> (a -> b -> c -> d) -> Property equivalentWhenFirstSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Gen a -> (a -> [a]) -> Property equivalentWhenFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> b) -> Property equivalentWhenFirstSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenFirstSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenFirstSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> c) -> Property equivalentWhenSecondSucceedsOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceeds :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> b) -> (a -> f b) -> Property equivalentWhenSecondSucceedsOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSecondSucceedsOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceeds2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSecondSucceedsOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnGen :: (Show a, Eq a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Gen a -> (a -> [a]) -> Property equivalentWhenSucceedOnValid :: (Show a, Eq a, GenValid a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceed :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, Show b, Eq b, CanFail f) => (a -> f b) -> (a -> f b) -> Property equivalentWhenSucceedOnGens2 :: (Show a, Eq a, Show b, Eq b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Gen (a, b) -> ((a, b) -> [(a, b)]) -> Property equivalentWhenSucceedOnValids2 :: (Show a, Eq a, GenValid a, Show b, Eq b, GenValid b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceed2 :: (Show a, Eq a, GenUnchecked a, Show b, Eq b, GenUnchecked b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property equivalentWhenSucceedOnArbitrary2 :: (Show a, Eq a, Arbitrary a, Show b, Eq b, Arbitrary b, Show c, Eq c, CanFail f) => (a -> b -> f c) -> (a -> b -> f c) -> Property inverseFunctionsOnGen :: (Show a, Eq a) => (a -> b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsOnValid :: (Show a, Eq a, GenValid a) => (a -> b) -> (b -> a) -> Property inverseFunctions :: (Show a, Eq a, GenUnchecked a) => (a -> b) -> (b -> a) -> Property -- | id is its own inverse function for every type: prop> -- inverseFunctionsOnArbitrary id (id :: Int -> Int) inverseFunctionsOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> f b) -> (b -> a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfFirstSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfFirstSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> f b) -> (b -> a) -> Property inverseFunctionsIfSecondSucceedsOnGen :: (Show a, Eq a, CanFail f) => (a -> b) -> (b -> f a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSecondSucceedsOnValid :: (Show a, Eq a, GenValid a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceeds :: (Show a, Eq a, GenUnchecked a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSecondSucceedsOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f) => (a -> b) -> (b -> f a) -> Property inverseFunctionsIfSucceedOnGen :: (Show a, Eq a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Gen a -> (a -> [a]) -> Property inverseFunctionsIfSucceedOnValid :: (Show a, Eq a, GenValid a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceed :: (Show a, Eq a, GenUnchecked a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property inverseFunctionsIfSucceedOnArbitrary :: (Show a, Eq a, Arbitrary a, CanFail f, CanFail g) => (a -> f b) -> (b -> g a) -> Property idempotentOnGen :: (Show a, Eq a) => (a -> a) -> Gen a -> (a -> [a]) -> Property idempotentOnValid :: (Show a, Eq a, GenValid a) => (a -> a) -> Property idempotent :: (Show a, Eq a, GenUnchecked a) => (a -> a) -> Property -- | id is idempotent for any type: -- --
--   idempotentOnArbitrary (id :: Int -> Int)
--   
-- -- const, given any input, is idempotent for any type as well: -- --
--   \int -> idempotentOnArbitrary (const int :: Int -> Int)
--   
idempotentOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a) -> Property -- | <math> reflexiveOnElem :: (a -> a -> Bool) -> a -> Bool reflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   reflexivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   reflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
reflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   reflexivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   reflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
reflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> transitiveOnElems :: (a -> a -> Bool) -> a -> a -> a -> Bool transitivityOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a, a) -> (a -> [a]) -> Property -- |
--   transitivityOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   transitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
transitivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   transitivity ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivity (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivity (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   transitivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   transitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
transitivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> antisymmetricOnElemsWithEquality :: (a -> a -> Bool) -> (a -> a -> Bool) -> a -> a -> Bool antisymmetryOnGensWithEquality :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> a -> Bool) -> (a -> [a]) -> Property antisymmetryOnGens :: (Show a, Eq a) => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   antisymmetryOnValid ((>) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((>=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<=) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)
--   
-- --
--   antisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)
--   
antisymmetryOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antisymmetry ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetry (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetry ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetry :: (Show a, Eq a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)
--   
-- --
--   antisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool)
--   
antisymmetryOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> antireflexiveOnElem :: (a -> a -> Bool) -> a -> Bool antireflexivityOnGen :: Show a => (a -> a -> Bool) -> Gen a -> (a -> [a]) -> Property -- |
--   antireflexivityOnValid ((<) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((/=) :: Double -> Double -> Bool)
--   
-- --
--   antireflexivityOnValid ((>) :: Double -> Double -> Bool)
--   
antireflexivityOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   antireflexivity ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivity ((>) :: Int -> Int -> Bool)
--   
antireflexivity :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
-- --
--   antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)
--   
antireflexivityOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> symmetricOnElems :: (a -> a -> Bool) -> a -> a -> Bool symmetryOnGens :: Show a => (a -> a -> Bool) -> Gen (a, a) -> (a -> [a]) -> Property -- |
--   symmetryOnValid ((==) :: Double -> Double -> Bool)
--   
-- --
--   symmetryOnValid ((/=) :: Double -> Double -> Bool)
--   
symmetryOnValid :: (Show a, GenValid a) => (a -> a -> Bool) -> Property -- |
--   symmetry ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetry ((/=) :: Int -> Int -> Bool)
--   
symmetry :: (Show a, GenUnchecked a) => (a -> a -> Bool) -> Property -- |
--   symmetryOnArbitrary ((==) :: Int -> Int -> Bool)
--   
-- --
--   symmetryOnArbitrary ((/=) :: Int -> Int -> Bool)
--   
symmetryOnArbitrary :: (Show a, Arbitrary a) => (a -> a -> Bool) -> Property -- | <math> leftIdentityOnElemWithEquality :: (b -> a -> a) -> (a -> a -> Bool) -> b -> a -> Bool leftIdentityOnGenWithEquality :: Show a => (b -> a -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property leftIdentityOnGen :: (Show a, Eq a) => (b -> a -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   leftIdentityOnValid (flip ((^) :: Double -> Int -> Double)) 1
--   
leftIdentityOnValid :: (Show a, Eq a, GenValid a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentity (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentity :: (Show a, Eq a, GenUnchecked a) => (b -> a -> a) -> b -> Property -- |
--   leftIdentityOnArbitrary (flip ((^) :: Int -> Int -> Int)) 1
--   
leftIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (b -> a -> a) -> b -> Property -- | <math> rightIdentityOnElemWithEquality :: (a -> b -> a) -> (a -> a -> Bool) -> b -> a -> Bool rightIdentityOnGenWithEquality :: Show a => (a -> b -> a) -> (a -> a -> Bool) -> b -> Gen a -> (a -> [a]) -> Property rightIdentityOnGen :: (Show a, Eq a) => (a -> b -> a) -> b -> Gen a -> (a -> [a]) -> Property -- |
--   rightIdentityOnValid ((^) :: Double -> Int -> Double) 1
--   
rightIdentityOnValid :: (Show a, Eq a, GenValid a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentity ((^) :: Int -> Int -> Int) 1
--   
rightIdentity :: (Show a, Eq a, GenUnchecked a) => (a -> b -> a) -> b -> Property -- |
--   rightIdentityOnArbitrary ((^) :: Int -> Int -> Int) 1
--   
rightIdentityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> b -> a) -> b -> Property -- | <math> identityOnGen :: (Show a, Eq a) => (a -> a -> a) -> a -> Gen a -> (a -> [a]) -> Property -- |
--   identityOnValid ((*) :: Double -> Double -> Double) 1
--   
-- --
--   identityOnValid ((+) :: Double -> Double -> Double) 0
--   
identityOnValid :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> a -> Property -- |
--   identity ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identity ((+) :: Int -> Int -> Int) 0
--   
identity :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> a -> Property -- |
--   identityOnArbitrary ((*) :: Int -> Int -> Int) 1
--   
-- --
--   identityOnArbitrary ((+) :: Int -> Int -> Int) 0
--   
identityOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> a -> Property -- | <math> associativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a, a) -> ((a, a, a) -> [(a, a, a)]) -> Property associativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   associative ((*) :: Int -> Int -> Int)
--   
-- --
--   associative ((+) :: Int -> Int -> Int)
--   
associative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   associativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
-- --
--   associativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
associativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property -- | <math> commutativeOnGens :: (Show a, Eq a) => (a -> a -> a) -> Gen (a, a) -> ((a, a) -> [(a, a)]) -> Property -- |
--   commutative ((+) :: Double -> Double -> Double)
--   
-- --
--   commutative ((*) :: Double -> Double -> Double)
--   
commutativeOnValids :: (Show a, Eq a, GenValid a) => (a -> a -> a) -> Property -- |
--   commutative ((+) :: Int -> Int -> Int)
--   
-- --
--   commutative ((*) :: Int -> Int -> Int)
--   
commutative :: (Show a, Eq a, GenUnchecked a) => (a -> a -> a) -> Property -- |
--   commutativeOnArbitrary ((+) :: Int -> Int -> Int)
--   
-- --
--   commutativeOnArbitrary ((*) :: Int -> Int -> Int)
--   
commutativeOnArbitrary :: (Show a, Eq a, Arbitrary a) => (a -> a -> a) -> Property