ú΂Äzˆ-      !"#$%&'()*+,Safew*A set of laws associated with a typeclass.+Name of the typeclass whose laws are testedPairs of law name and property1-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY -./0123456789:;<=>?@ABCDEFGSafeVlTests the following properties: Conjunction Idempotence n .&. n "a nDisjunction Idempotence n .|. n "a nDouble Complementcomplement (complement n) "a nSet BitsetBit n i "a n .|. bit i Clear Bit'clearBit n i "a n .&. complement (bit i)Complement Bit!complementBit n i "a xor n (bit i) Clear ZeroclearBit zeroBits i "a zeroBitsSet ZerosetBit zeroBits i "a bit i Test ZerotestBit zeroBits i "a FalsePop ZeropopCount zeroBits "a 0Count Leading Zeros of Zero,countLeadingZeros zeroBits "a finiteBitSize "¥Count Trailing Zeros of Zero-countTrailingZeros zeroBits "a finiteBitSize "¥#All of the useful instances of the Z typeclass also have [L instances, so these property tests actually require that instance as well.Note:2 This property test is only available when using base-4.7 or newer.\]SafeVóTests the following ^ properties: Identity_ ` ` "a `First Identitya ` "a `Second Identityb ` "a `Bifunctor Composition_ f g "a a f . b g NoteH: This property test is only available when this package is built with  base-4.9+ or transformers-0.5+.SafeV¶+Tests the following applicative properties: Identityc ` d v "a v Compositionc (.) d u d v d w "a u d (v d w) Homomorphismc f d c x "a c (f x) Interchangeu d c y "a c (e y) d u LiftA2 (1)(d) "a f `SafeV+Tests the following alternative properties: Identityg h x "a x x h g "a x Associativitya h (b h c) "a (a h b) h c)SafeVÒ#Tests the following alt properties:  Associativity(a <!> b) <!> c "a a <!> (b <!> c)Left Distributivity@f i (a <!> b) = (f i a) <!> (f i b) SafeV%Ì Tests the following properties:  Transitivea == b "' b == c !Ò a == c Symmetrica == b !Ò b == a Reflexivea == aûSome of these properties involve implication. In the case that the left hand side of the implication arrow does not hold, we do not retry. Consequently, these properties only end up being useful when the data type has a small number of inhabitants.  SafeV/ˆ Tests the following j properties: foldfold "a k `foldMapk f "a l (m . f) nfoldrl f z t "a o (k (p . f) t ) zfoldr'foldr' f z0 xs = let f' k x z = k q f x z in r f' ` xs z0foldr1s! f t "a let Just (xs,x) = unsnoc (toList t) in l f x xsfoldlr f z t "a o (t (k (u . p . v f) t)) zfoldl'foldl' f z0 xs "a let f' x k z = k q f z x in l f' ` xs z0foldl1w f t "a let x : xs = toList t in r f x xstoListx "a l (:) []nully "a l (z (z {)) |length} "a getSum . foldMap (z (~ 1))%Note that this checks to ensure that foldl' and foldr' are suitably strict.  SafeV1´ 'Tests the following functor properties: Identity ` "a ` Compositionfmap (f . g) "a  f .  gConst(<$) "a  z  SafeV4Æ Tests the following properties: Quotient Remainder(quot x y) * y + (rem x y) "a xDivision Modulus(div x y) * y + (mod x y) "a xInteger RoundtripfromInteger (toInteger x) "a x None <FQTVIğ Tests the following properties: Partial IsomorphismfromList . toList "a idLength Preservation&fromList xs "a fromListN (length xs) xsNote:2 This property test is only available when using base-4.7 or newer.Property for the generate^ function, which builds a container of a given length by applying a function to each index.Property for the filterD function, which keeps elements for which the predicate holds true.Property for the filterM^ function, which keeps elements for which the predicate holds true in an applicative context.Property for the mapMaybeD function, which keeps elements for which the predicate holds true.input element typefoldr functioninput element typefoldl functioninput element typemonadic foldl functioninput element typeoutput element type map functioninput element typeoutput element typeindexed map functioninput element typeoutput element typemonadic indexed map functioninput element typeoutput element typetraverse functioninput element typeinput element typeinput element typeinput element type element type map function element typetraverse functioninput element typeoutput element type map functioninput element typeoutput element typetraverse function   NoneVNZTests the following properties: Partial Isomorphismdecode . encode "a JustEncoding Equals Valuedecode . encode "a Just . toJSON8Note that in the second property, the type of decode is ByteString -> Value, not ByteString -> aSafeVQp'Tests the following monadic properties:  Left Identity€ a  k "a k aRight Identitym  € "a m Associativitym  (\x -> k x  h) "a (m  k)  hReturnc "a €Ap(d) "a ‚SafeVTØ*Tests the following monad plus properties:  Left Identityƒ empty x "a xRight Identityƒ x empty "a x Associativityƒ a (ƒ b c) "a ƒ (ƒ a b) c)  Left Zero„  f "a „ Right Zerom >> „ "a „SafeVXl /Tests the following monadic zipping properties:  Naturality=liftM (f *** g) (mzip ma mb) = mzip (liftM f ma) (liftM g mb)&In the laws above, the infix function ***" refers to a typeclass method of Arrow. SafeV]”!Tests the following properties:  Associative1mappend a (mappend b c) "a mappend (mappend a b) c Left Identitymappend mempty a "a aRight Identitymappend a mempty "a a Concatenation$mconcat as "a foldr mappend mempty as"Tests everything from  monoidProps plus the following:  Commutativemappend a b "a mappend b a!"SafeV_å#Tests the following properties:  Antisymmetry@a "d b "' b "d a !Ò a = b  Transitivitya "d b "' b "d c !Ò a "d cTotality a "d b "( a > b#None DFTVfj$ Test that a … instance obey the several laws.†destination pointer source arrayoffset into source arraynumber of prims to copy‡destination arrayoffset into destination array source arrayoffset into source arraynumber of bytes to copyˆdestination arrayoffset into destination array source arrayoffset into source arraynumber of bytes to copy$‰Š‹ŒSafeViV%Tests the following properties:  Associativea <> (b <> c) "a (a <> b) <> c Concatenationsconcat as "a foldr1 (<>) asTimes(stimes n a "a foldr1 (<>) (replicate n a)%SafeVi«&None DFTVj8'SafeVtc(Tests the following  properties:  Naturalityt .  f =  (t . f)) for every applicative transformation tIdentity Identity = Identity Composition (Compose .  g . f) = Compose .  ( g) .  fSequence Naturalityt .  =  .  t) for every applicative transformation tSequence Identity .  Identity = IdentitySequence Composition .  Compose = Compose .   . foldMapk = fmap = ‘ Where an applicative transformation is a function 1t :: (Applicative f, Applicative g) => f a -> g apreserving the ’ operations, i.e. Identity: t (c x) = c xDistributivity: t (x d y) = t x d t y(Noney•)®A convenience function for testing properties in GHCi. See the test suite of this library for an example of how to integrate multiple properties into larger test suite.*VA convenience function for checking multiple typeclass instances of multiple types.*/Element is type name paired with typeclass laws  !"#$%&'()*)*" !#$%&'  (“”•– ! " #$%&'()*+,-./0123 456789:;<=>?@ABCDDEEFFGGHIJJKLLMNOPQQRRSSTTUVWXYZ[\]^_`abcdefghighjkkglmglngopglqglrgosgotgougovgowgoxgyzg{|g{}g{~gogo€g‚gƒgo„g{…g{†g‡gˆgo‰g{Šg{‹g{Œgo‘g{’g“go”go•go–go—go˜go™š›œŸ  ¡¡g¢£g¢¤g¢¥g¢¦g¢§go¨©ª«¬0quickcheck-classes-0.4.10-HOTLZzv7OQE9kH3qLBtS3nTest.QuickCheck.ClassesTest.QuickCheck.Classes.IsListTest.QuickCheck.Classes.CommonTest.QuickCheck.Classes.Bits!Test.QuickCheck.Classes.Bifunctor#Test.QuickCheck.Classes.Applicative#Test.QuickCheck.Classes.AlternativeTest.QuickCheck.Classes.AltTest.QuickCheck.Classes.Eq Test.QuickCheck.Classes.FoldableTest.QuickCheck.Classes.Functor Test.QuickCheck.Classes.IntegralTest.QuickCheck.Classes.JsonTest.QuickCheck.Classes.Monad!Test.QuickCheck.Classes.MonadPlus Test.QuickCheck.Classes.MonadZipTest.QuickCheck.Classes.MonoidTest.QuickCheck.Classes.OrdTest.QuickCheck.Classes.Prim!Test.QuickCheck.Classes.Semigroup Test.QuickCheck.Classes.ShowRead Test.QuickCheck.Classes.Storable#Test.QuickCheck.Classes.TraversableLaws lawsTypeclasslawsPropertiesbitsLaws bifunctorLawsapplicativeLawsalternativeLawsaltLawseqLaws foldableLaws functorLaws integralLaws isListLaws foldrProp foldlProp foldlMPropmapPropimapProp imapMProp traverseProp generateProp generateMProp replicatePropreplicateMProp filterProp filterMProp mapMaybeProp mapMaybeMPropjsonLaws monadLaws monadPlusLaws monadZipLaws monoidLawscommutativeMonoidLawsordLawsprimLaws semigroupLaws showReadLaws storableLawstraversableLaws lawsCheck lawsCheckMany$fMonoidStatus$fSemigroupStatus EquationTwoEquationLinearEquationMLinearEquation_linearEquationLinear_linearEquationConstantApply2 getApply2ApplygetApplyBottomBottomUndefined BottomValue LastNothing ChooseFirst ChooseSecondTriplemyForAllShrink nestedEq1 propNestedEq1toSpecialApplicativeflipPairapTransfunc1func2func3func4func5func6 reverseTriplefoldMapArunLinearEquationrunLinearEquationM runEquationrunEquationTwobase Data.BitsBits FiniteBitsBitIndexData.Bifunctor BifunctorbimapGHC.Baseidfirstsecondpure<*>$liftA2empty<|> Data.Functor<$> Data.FoldableFoldablefoldMapfoldrmappendmempty Data.MonoidappEndoEndo$!foldlfoldr1getDualDualflipfoldl1toListnullconstghc-prim GHC.TypesFalseTruelengthSumfmapreturn>>=apmplusmzero(primitive-0.6.2.0-EI3NK1Xfv9zEcRtyXK2EwZData.Primitive.TypesPrimcopyPrimArrayToPtrcopyMutablePrimArray copyPrimArrayMutablePrimArray PrimArrayData.Traversable Traversabletraverse sequenceAfoldMapDefault fmapDefault ApplicativeStatusBadGood