d      !"#$%&'()*+,-./01 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe<=T?A class of types that are the result of functions that can failNone<=TD Reflexive(\prec) \quad\equiv\quad \forall a: (a \prec a) 5reflexivityOnValid ((<=) :: Double -> Double -> Bool)5reflexivityOnValid ((==) :: Double -> Double -> Bool)5reflexivityOnValid ((>=) :: Double -> Double -> Bool)IreflexivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)IreflexivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)HreflexivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)(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) 3reflexivityOnArbitrary ((<=) :: Int -> Int -> Bool)3reflexivityOnArbitrary ((==) :: Int -> Int -> Bool)3reflexivityOnArbitrary ((>=) :: Int -> Int -> Bool)GreflexivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)GreflexivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)FreflexivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool) A relation An element    None<=T M Antireflexive(\prec) \quad\equiv\quad \forall a: \neg (a \prec a) 8antireflexivityOnValid ((<) :: Double -> Double -> Bool)9antireflexivityOnValid ((/=) :: Double -> Double -> Bool)8antireflexivityOnValid ((>) :: Double -> Double -> Bool) +antireflexivity ((<) :: Int -> Int -> Bool),antireflexivity ((/=) :: Int -> Int -> Bool)+antireflexivity ((>) :: Int -> Int -> Bool)6antireflexivityOnArbitrary ((<) :: Int -> Int -> Bool)7antireflexivityOnArbitrary ((/=) :: Int -> Int -> Bool)6antireflexivityOnArbitrary ((>) :: Int -> Int -> Bool)  A relation An element    SafeNone<=T Antisymmetric(\prec, \doteq) \quad\equiv\quad \forall a, b: ((a \prec b) \wedge (b \prec a)) \Rightarrow (a \doteq b) 5antisymmetryOnValid ((>) :: Double -> Double -> Bool)6antisymmetryOnValid ((>=) :: Double -> Double -> Bool)6antisymmetryOnValid ((<=) :: Double -> Double -> Bool)5antisymmetryOnValid ((<) :: Double -> Double -> Bool)JantisymmetryOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)JantisymmetryOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)IantisymmetryOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)(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)3antisymmetryOnArbitrary ((>) :: Int -> Int -> Bool)4antisymmetryOnArbitrary ((>=) :: Int -> Int -> Bool)4antisymmetryOnArbitrary ((<=) :: Int -> Int -> Bool)3antisymmetryOnArbitrary ((<) :: Int -> Int -> Bool)HantisymmetryOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)HantisymmetryOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)GantisymmetryOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool)IantisymmetryOnArbitrary ((\x y -> even x && odd y) :: Int -> Int -> Bool) A relationAn equivalence relation Two elementsNone<=Tc Symmetric(\prec) \quad\equiv\quad \forall a, b: (a \prec b) \Leftrightarrow (b \prec a) 2symmetryOnValid ((==) :: Double -> Double -> Bool)2symmetryOnValid ((/=) :: Double -> Double -> Bool)%symmetry ((==) :: Int -> Int -> Bool)%symmetry ((/=) :: Int -> Int -> Bool)0symmetryOnArbitrary ((==) :: Int -> Int -> Bool)0symmetryOnArbitrary ((/=) :: Int -> Int -> Bool) A relation Two elementsNone<=Tx Transitive(\prec) \quad\equiv\quad \forall a, b, c: ((a \prec b) \wedge (b \prec c)) \Rightarrow (a \prec c) 5transitivityOnValid ((>) :: Double -> Double -> Bool)6transitivityOnValid ((>=) :: Double -> Double -> Bool)6transitivityOnValid ((==) :: Double -> Double -> Bool)6transitivityOnValid ((<=) :: Double -> Double -> Bool)5transitivityOnValid ((<) :: Double -> Double -> Bool)JtransitivityOnValid (Data.List.isPrefixOf :: [Double] -> [Double] -> Bool)JtransitivityOnValid (Data.List.isSuffixOf :: [Double] -> [Double] -> Bool)ItransitivityOnValid (Data.List.isInfixOf :: [Double] -> [Double] -> Bool)(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) 3transitivityOnArbitrary ((>) :: Int -> Int -> Bool)4transitivityOnArbitrary ((>=) :: Int -> Int -> Bool)4transitivityOnArbitrary ((==) :: Int -> Int -> Bool)4transitivityOnArbitrary ((<=) :: Int -> Int -> Bool)3transitivityOnArbitrary ((<) :: Int -> Int -> Bool)HtransitivityOnArbitrary (Data.List.isPrefixOf :: [Int] -> [Int] -> Bool)HtransitivityOnArbitrary (Data.List.isSuffixOf :: [Int] -> [Int] -> Bool)GtransitivityOnArbitrary (Data.List.isInfixOf :: [Int] -> [Int] -> Bool) A relationThree elements    None<=T     None<=T ![ LeftIdentity(\star, \doteq, b) \quad\equiv\quad \forall a: (b \star a) \doteq a $=leftIdentityOnValid (flip ((^) :: Double -> Int -> Double)) 1%0leftIdentity (flip ((^) :: Int -> Int -> Int)) 1&;leftIdentityOnArbitrary (flip ((^) :: Int -> Int -> Int)) 1'\ RightIdentity(\star, \doteq, b) \quad\equiv\quad \forall a: (a \star b) \doteq a *7rightIdentityOnValid ((^) :: Double -> Int -> Double) 1+*rightIdentity ((^) :: Int -> Int -> Int) 1,5rightIdentityOnArbitrary ((^) :: Int -> Int -> Int) 1.5identityOnValid ((*) :: Double -> Double -> Double) 15identityOnValid ((+) :: Double -> Double -> Double) 0/%identity ((*) :: Int -> Int -> Int) 1%identity ((+) :: Int -> Int -> Int) 000identityOnArbitrary ((*) :: Int -> Int -> Int) 10identityOnArbitrary ((+) :: Int -> Int -> Int) 0!A binary operation An equalityA candidate left-identity An element"A binary operation An equalityA candidate left-identity#A binary operationA candidate left-identity$%&'A binary operation An equalityA candidate right-identity An element(A binary operation An equalityA candidate right-identity)A binary operationA candidate right-identity*+,-./0!"#$%&'()*+,-./0!"#$%&'()*+,-./0!"#$%&'()*+,-./0 None<=T2/commutative ((+) :: Double -> Double -> Double)/commutative ((*) :: Double -> Double -> Double)3&commutative ((+) :: Int -> Int -> Int)&commutative ((*) :: Int -> Int -> Int)41commutativeOnArbitrary ((+) :: Int -> Int -> Int)1commutativeOnArbitrary ((*) :: Int -> Int -> Int)1234123412341234 None<=T7&associative ((*) :: Int -> Int -> Int)&associative ((+) :: Int -> Int -> Int)81associativeOnArbitrary ((*) :: Int -> Int -> Int)1associativeOnArbitrary ((+) :: Int -> Int -> Int)5678567856785678None<=T!"#$%&'()*+,-./012345678!"#$%&'()*+,-./056781234 None<=T94The given generator generates only valid data points:6The given generator generates only invalid data points9:9:9:9: None<=T;dThe function produces valid output when the input is generated as specified by the given generator.<CThe function produces valid output when the input is generated by genValid=CThe function produces valid output when the input is generated by  genUnchecked>CThe function produces valid output when the input is generated by  arbitrary ;<=>?@ABCDEF ;<=>?@ABCDEF ;<=>?@ABCDEF ;<=>?@ABCDEF None<=TJe is its own inverse function for every type: prop> inverseFunctionsOnArbitrary id (id :: Int -> Int)GHIJKLMNOPQRSTUVGHIJKLMNOPQRSTUVGHIJKLMNOPQRSTUVGHIJKLMNOPQRSTUVNone<=TZ is idempotent for any type:(idempotentOnArbitrary (id :: Int -> Int)6, given any input, is idempotent for any type as well:7\int -> idempotentOnArbitrary (const int :: Int -> Int)WXYZWXYZWXYZWXYZNone<=T^CequivalentOnArbitrary ((* 2) . (+ 1)) ((+ 2) . (* 2) :: Int -> Int)b5equivalentOnArbitrary2 (+) ((+) :: Int -> Int -> Int)$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$[\]^_`abcdfeghjiklnmoprqstuvwxzy{|}~$[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None<=T FThe function succeeds if the input is generated by the given generator3The function succeeds if the input is generated by genValid3The function succeeds if the input is generated by  genUnchecked3The function succeeds if the input is generated by  arbitraryCThe function fails if the input is generated by the given generator0The function fails if the input is generated by  genInvalid,The function produces output that satisfies isValid@ if it is given input that is generated by the given generator.,The function produces output that satisfies isValid, if it is given input that is generated by  arbitrary.,The function produces output that satisfies isValid, if it is given input that is generated by  arbitrary.,The function produces output that satisfies isValid, if it is given input that is generated by  genUnchecked.None<=T\;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\;<=>?@ABCDEF[\]^_`abcdfeghjiklnmoprqstuvwxzy{|}~GHIJKLMNOPQRSTUVWXYZNone<=T  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9:;<=>?@ABCDEF[\]^_`ab{|}~cdfeghjiklnmoprqstuvwxzyGHIJKLMNOPQRSTUVWXYZ   !"#$%&'()*+,-./056781234 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j klmnopqrstuvwxyz{|}~3genvalidity-property-0.0.0.0-3hLqOl7QVMYHXQ2a8OzyM9Test.Validity.Types#Test.Validity.Relations.Reflexivity'Test.Validity.Relations.AntireflexivityTest.Validity.Property.Utils$Test.Validity.Relations.Antisymmetry Test.Validity.Relations.Symmetry$Test.Validity.Relations.Transitivity!Test.Validity.Operations.Identity&Test.Validity.Operations.Commutativity&Test.Validity.Operations.Associativity"Test.Validity.GenValidity.Property Test.Validity.Functions.ValidityTest.Validity.Functions.Inverse#Test.Validity.Functions.Idempotence#Test.Validity.Functions.EquivalenceTest.Validity.Functions.CanFailTest.Validity.RelationsTest.Validity.OperationsTest.Validity.FunctionsTest.Validity.PropertyCanFail hasFailedresultIfSucceeded$fCanFailEither$fCanFailMaybereflexiveOnElemreflexivityOnGenreflexivityOnValid reflexivityreflexivityOnArbitraryantireflexiveOnElemantireflexivityOnGenantireflexivityOnValidantireflexivityantireflexivityOnArbitrary===><==> antisymmetricOnElemsWithEqualityantisymmetryOnGensWithEqualityantisymmetryOnGensantisymmetryOnValid antisymmetryantisymmetryOnArbitrarysymmetricOnElemssymmetryOnGenssymmetryOnValidsymmetrysymmetryOnArbitrarytransitiveOnElemstransitivityOnGenstransitivityOnValid transitivitytransitivityOnArbitraryleftIdentityOnElemWithEqualityleftIdentityOnGenWithEqualityleftIdentityOnGenleftIdentityOnValid leftIdentityleftIdentityOnArbitraryrightIdentityOnElemWithEqualityrightIdentityOnGenWithEqualityrightIdentityOnGenrightIdentityOnValid rightIdentityrightIdentityOnArbitrary identityOnGenidentityOnValididentityidentityOnArbitrarycommutativeOnGenscommutativeOnValids commutativecommutativeOnArbitraryassociativeOnGensassociativeOnValids associativeassociativeOnArbitrarygenGeneratesValidgenGeneratesInvalidproducesValidsOnGenproducesValidsOnValids producesValidproducesValidsOnArbitraryproducesValidsOnGens2producesValidsOnValids2producesValid2producesValidsOnArbitrary2producesValidsOnGens3producesValidsOnValids3producesValid3producesValidsOnArbitrary3inverseFunctionsOnGeninverseFunctionsOnValidinverseFunctionsinverseFunctionsOnArbitrary$inverseFunctionsIfFirstSucceedsOnGen&inverseFunctionsIfFirstSucceedsOnValidinverseFunctionsIfFirstSucceeds*inverseFunctionsIfFirstSucceedsOnArbitrary%inverseFunctionsIfSecondSucceedsOnGen'inverseFunctionsIfSecondSucceedsOnValid inverseFunctionsIfSecondSucceeds+inverseFunctionsIfSecondSucceedsOnArbitraryinverseFunctionsIfSucceedOnGen inverseFunctionsIfSucceedOnValidinverseFunctionsIfSucceed$inverseFunctionsIfSucceedOnArbitraryidempotentOnGenidempotentOnValid idempotentidempotentOnArbitraryequivalentOnGenequivalentOnValid equivalentequivalentOnArbitraryequivalentOnGens2equivalentOnValids2 equivalent2equivalentOnArbitrary2 equivalentWhenFirstSucceedsOnGen"equivalentWhenFirstSucceedsOnValid&equivalentWhenFirstSucceedsOnArbitraryequivalentWhenFirstSucceeds"equivalentWhenFirstSucceedsOnGens2$equivalentWhenFirstSucceedsOnValids2'equivalentWhenFirstSucceedsOnArbitrary2equivalentWhenFirstSucceeds2!equivalentWhenSecondSucceedsOnGen#equivalentWhenSecondSucceedsOnValid'equivalentWhenSecondSucceedsOnArbitraryequivalentWhenSecondSucceeds#equivalentWhenSecondSucceedsOnGens2%equivalentWhenSecondSucceedsOnValids2(equivalentWhenSecondSucceedsOnArbitrary2equivalentWhenSecondSucceeds2equivalentWhenSucceedOnGenequivalentWhenSucceedOnValidequivalentWhenSucceed equivalentWhenSucceedOnArbitraryequivalentWhenSucceedOnGens2equivalentWhenSucceedOnValids2!equivalentWhenSucceedOnArbitrary2equivalentWhenSucceed2equivalentOnGens3equivalentOnValids3 equivalent3equivalentOnArbitrary3 succeedsOnGensucceedsOnValidsucceedssucceedsOnArbitrary failsOnGenfailsOnInvalidvalidIfSucceedsOnGenvalidIfSucceedsOnValidvalidIfSucceedsOnArbitraryvalidIfSucceedssucceedsOnGens2succeedsOnValids2 succeeds2succeedsOnArbitrary2 failsOnGens2failsOnInvalid2validIfSucceedsOnGens2validIfSucceedsOnValids2validIfSucceeds2validIfSucceedsOnArbitrary2validIfSucceedsOnGens3validIfSucceedsOnValids3validIfSucceeds3validIfSucceedsOnArbitrary3baseGHC.Baseidconst&validity-0.3.3.0-1XCNpDuatrGqgsJa54nku Data.ValidityValidityisValidconstructValidconstructValidUnsafe isInvalid*genvalidity-0.3.2.0-HpTCcHs9gNC86IijFDMCyqData.GenValidity genListOf arbPartition genSplit3genSplitupTo GenUnchecked genUncheckedGenValidgenValid GenInvalid genInvalid GGenUnchecked gGenUnchecked