úÎ!PAJĽ<      !"#$%&'()*+,-./0123456789:; NoneXqč/quickcheck-classes#Tests the following alt properties:  Associativity(a < b) < c "a a < (b < c)Left Distributivityf = (a < b) "a (f = a) < (f = b)/NoneSXqS0quickcheck-classes#Tests the following alt properties:  LiftF2 (1)(>) "a ? @ AssociativityA (B) u > v > w "a u > (v > w)0(c) 2019 Andrew LelechenkoBSD3None>X—1quickcheck-classes Test that a C instance obey several laws. Check that D is an inverse of times:&y /= 0 => (x * y) `divide` y == Just x,,y /= 0, x `divide` y == Just z => x == z * y. Check that E= is a common divisor and is a multiple of any common divisor:Lx /= 0, y /= 0 => isJust (x `divide` gcd x y) && isJust (y `divide` gcd x y),1z /= 0 => isJust (gcd (x * z) (y * z) `divide` z). Check that F= is a common multiple and is a factor of any common multiple:Lx /= 0, y /= 0 => isJust (lcm x y `divide` x) && isJust (lcm x y `divide` y),[x /= 0, y /= 0, isJust (z `divide` x), isJust (z `divide` y) => isJust (z `divide` lcm x y). Check that E of G4 numbers is a unit of the semiring (has an inverse):2y /= 0, coprime x y => isJust (1 `divide` gcd x y).2quickcheck-classes Test that a H* instance obey laws of a Euclidean domain.7y /= 0, r == x `rem` y => r == 0 || degree r < degree y,1y /= 0, (q, r) == x `quotRem` y => x == q * y + r,-y /= 0 => x `quot` x y == fst (x `quotRem` y),,y /= 0 => x `rem` x y == snd (x `quotRem` y).12NoneÖIJKLMNOPQRSTUVWNoneXH3quickcheck-classesTests 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 -> a3(c) 2019 Andrew LelechenkoBSD3NoneX 4quickcheck-classes Test that a   instance obey several laws.4 NoneXq#Œ5quickcheck-classes#Tests the following alt properties:  Left IdentityX < m "a mRight Identitym < X "a m6quickcheck-classesTests everything from altLaws, plus the following:  CongruencyX "a Y56 None FHVWX0î7quickcheck-classes Test that a Z instance obey the several laws.[quickcheck-classesdestination pointerquickcheck-classes source arrayquickcheck-classesoffset into source arrayquickcheck-classesnumber of prims to copy\quickcheck-classesdestination arrayquickcheck-classesoffset into destination arrayquickcheck-classes source arrayquickcheck-classesoffset into source arrayquickcheck-classesnumber of bytes to copy]quickcheck-classesdestination arrayquickcheck-classesoffset into destination arrayquickcheck-classes source arrayquickcheck-classesoffset into source arrayquickcheck-classesnumber of bytes to copy^quickcheck-classes array to fillquickcheck-classesoffset into arrayquickcheck-classesnumber of values to fillquickcheck-classesvalue to fill with7 NoneX3}8quickcheck-classesTests the following properties: Additive Inverse_ a ` a "a 07Note that this does not test any of the laws tested by  .8NoneXq:ž9quickcheck-classesTests the following a properties:  Associativityf `o' (g `o' h) "a (f `o' g) `o' hNoteH: This property test is only available when this package is built with  base-4.9+ or transformers-0.5+.:quickcheck-classesTests everything from 9 plus the following:  Commutativef `o' g "a g `o' fNoteH: This property test is only available when this package is built with  base-4.9+ or transformers-0.5+.9: NoneXHv;quickcheck-classesTests the following properties: Additive Commutativity a + b "a b + aAdditive Left Identity 0 + a "a aAdditive Right Identity a + 0 "a aMultiplicative Associativitya * (b * c) "a (a * b) * cMultiplicative Left Identity 1 * a "a aMultiplicative Right Identity a * 1 "a a-Multiplication Left Distributes Over Additiona * (b + c) "a (a * b) + (a * c).Multiplication Right Distributes Over Addition(a + b) * c "a (a * c) + (b * c) Multiplicative Left Annihilation 0 * a "a 0!Multiplicative Right Annihilation a * 0 "a 0Also tests that b is a homomorphism of semirings: FromNatural Maps Zerob 0 = cFromNatural Maps Oneb 1 = dFromNatural Maps Plusb (a + b) = b a + b bFromNatural Maps Timesb (a * b) = b a * b bequickcheck-classesaThere is no Arbitrary instance for Natural in QuickCheck, so we use NonNegative Integer instead.;NoneHHÁ<  !"#$%&'()*.-,+/0123456789:;<%*3$#7 ;812 )(/0"&'56! 9:4.-,+f !"#$%&'()*)+),-./0123456789:;<=>?@ABCDCEFGHIHJKLMNOPQRQSTUVWVXVYVYZ[\]^_ ` a b cde fghijkflmflniopioqiorstustvstwstxstystz9{9|9}9~99€99‚9ƒ9„9…9†9‡9ˆ9‰fŠ‹ioŒŽ  ‘ ’ “s”•s”–f—˜s”™s”‹s”š ›œ1quickcheck-classes-0.6.4.0-60JO3UHcZMkFeR4heXfPnKTest.QuickCheck.ClassesTest.QuickCheck.Classes.AltTest.QuickCheck.Classes.Apply!Test.QuickCheck.Classes.EuclideanTest.QuickCheck.Classes.IsListTest.QuickCheck.Classes.JsonTest.QuickCheck.Classes.MVectorVector.UnboxedMVectorTest.QuickCheck.Classes.PlusTest.QuickCheck.Classes.PrimTest.QuickCheck.Classes.Ring Test.QuickCheck.Classes.Semiring semiringLaws$Test.QuickCheck.Classes.Semigroupoid6quickcheck-classes-base-0.6.0.0-BZGpZweJMiA6MKrgSAGKgZTest.QuickCheck.Classes.Base lawsCheckMany lawsCheckOne lawsCheckProxy1Proxy2#Test.QuickCheck.Classes.TraversabletraversableLaws Test.QuickCheck.Classes.Storable storableLaws Test.QuickCheck.Classes.ShowRead showReadLawsTest.QuickCheck.Classes.ShowshowLaws!Test.QuickCheck.Classes.SemigroupexponentialSemigroupLawsrectangularBandSemigroupLawsidempotentSemigroupLawscommutativeSemigroupLaws semigroupLawsTest.QuickCheck.Classes.OrdordLawsTest.QuickCheck.Classes.NumnumLawsTest.QuickCheck.Classes.MonoidsemigroupMonoidLawscommutativeMonoidLaws monoidLaws Test.QuickCheck.Classes.MonadZip monadZipLaws!Test.QuickCheck.Classes.MonadPlus monadPlusLawsTest.QuickCheck.Classes.Monad monadLawsTest.QuickCheck.Classes.IxixLaws#Test.QuickCheck.Classes.AlternativealternativeLaws#Test.QuickCheck.Classes.ApplicativeapplicativeLaws#Test.QuickCheck.Classes.Base.IsList isListLaws"Test.QuickCheck.Classes.BifoldablebifoldableLaws!Test.QuickCheck.Classes.Bifunctor bifunctorLaws%Test.QuickCheck.Classes.BitraversablebitraversableLawsTest.QuickCheck.Classes.BitsbitsLaws Test.QuickCheck.Classes.CategorycommutativeCategoryLaws categoryLaws%Test.QuickCheck.Classes.ContravariantcontravariantLawsTest.QuickCheck.Classes.EnumboundedEnumLawsenumLawsTest.QuickCheck.Classes.EqeqLaws Test.QuickCheck.Classes.Foldable foldableLawsTest.QuickCheck.Classes.Functor functorLawsTest.QuickCheck.Classes.Generic generic1Laws genericLaws Test.QuickCheck.Classes.Integral integralLaws Test.QuickCheck.Classes.InternallawsProperties lawsTypeclassLawsaltLaws applyLaws gcdDomainLaws euclideanLawsjsonLaws muvectorLawsplusLawsextendedPlusLawsprimLawsringLawssemigroupoidLawscommutativeSemigroupoidLaws*semigroupoids-5.3.3-EESwn4HgBKpKioxEXkvG0jData.Functor.Altbase Data.Functor<$>Data.Functor.Bind.Class<.>liftF2GHC.Baseidfmap.$semirings-0.5-DLMFEz0fu55I4SvJfO9PxOData.Euclidean GcdDomaindividegcdlcmcoprime Euclidean mapMaybeMProp mapMaybeProp filterMProp filterPropreplicateMProp replicateProp generateMProp generateProp traverseProp imapMPropimapPropmapProp foldlMProp foldlProp foldrPropData.Functor.Pluszeroempty(primitive-0.7.0.0-9xMM76CsovTEGnXCHiCdRJData.Primitive.TypesPrimcopyPrimArrayToPtrcopyMutablePrimArray copyPrimArray setPrimArray Data.Semiringnegate+Data.Semigroupoid Semigroupoid fromNaturalonesemiringFromNaturalMapsPlus