Īõ³h&Dūč      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg Safe-InferredĮĀĆÜć d genvalidity0 generates an integer between 0 (inclusive) and n. genvalidityĮ'genSplit a' generates a tuple '(b, c)' such that 'b + c' equals a. genvalidityŹ'genSplit3 a' generates a triple '(b, c, d)' such that 'b + c + d' equals a. genvalidityŌ'genSplit4 a' generates a quadruple '(b, c, d, e)' such that 'b + c + d + e' equals a. genvalidityŪ'genSplit5 a' generates a quintuple '(b, c, d, e, f)' such that 'b + c + d + e + f' equals a. genvalidityį'genSplit6 a' generates a sextuple '(b, c, d, e, f, g)' such that 'b + c + d + e + f + g' equals a. genvalidityā'genSplit7 a' generates a septtuple '(b, c, d, e, f, g)' such that 'b + c + d + e + f + g' equals a.  genvalidityč'genSplit8 a' generates a octtuple '(b, c, d, e, f, g, h)' such that 'b + c + d + e + f + g + h' equals a.  genvalidity"'arbPartition n' generates a list ls such that 'sum ls' equals n, approximately. genvalidity A version of listOf. that takes size into account more accurately.åThis generator distributes the size that is is given among the values in the list that it generates. genvalidity A version of  " that returns a list instead of a h. genvalidity%Lift a shrinker function into a maybe genvalidity2Combine two shrinking functions to shrink a tuple. genvalidityLike , but for triples genvalidityLike , but for quadruples genvalidity>Turn a shrinking function into a function that shrinks tuples. genvalidity?Turn a shrinking function into a function that shrinks triples. genvalidityĀTurn a shrinking function into a function that shrinks quadruples. genvalidity:Generate Int, Int8, Int16, Int32 and Int64 values smartly.Some at the borderSome around zeroMostly uniformly genvalidity?Generate Word, Word8, Word16, Word32 and Word64 values smartly.Some at the borderSome around zeroMostly uniformly genvaliditySee  genvaliditySee  genvalidity(Generate floating point numbers smartly:Some denormalisedSome around zeroSome around the boundsĀSome by encoding an Integer and an Int to a floating point number.Some accross the entire range*Mostly uniformly via the bitrepresentation×The function parameter is to go from the bitrepresentation to the floating point value.       Safe-Inferred<ĮĀĆÄÅŁŚ4 ( genvalidityÅA class of types for which valid values can be generated to be valid.How to instantiate (Step 1: Try to instantiate (Ż without overriding any functions. It is possible that, if few values are valid or if validity checking is expensive, the resulting generator is too slow. In that case, go to Step 2.Step 2: Consider using 0 and 2Ü to speed up generation. This only works if your type has a derived or trivial i instance.Step 3Ą: If that still is not fast enough, consider writing your own generator and shrinking function. Make sure to generate any possible valid value, but only valid values. A note about jIf you also write  Arbitrary instances for GenValid% types, it may be best to simply use Činstance Arbitrary A where arbitrary = genValid shrink = shrinkValid) genvalidityŠGenerate a valid datum, this should cover all possible valid values in the type)The default implementation is as follows:  genValid = genValidStructurallyĘTo speed up testing, it may be a good idea to implement this yourself. If you do, make sure that it is possible to generate all possible valid data, otherwise your testing may not cover all cases.* genvalidityShrink a valid value.)The default implementation is as follows: & shrinkValid = shrinkValidStructurallyÖIt is important that this shrinking function only shrinks values to valid values. If *Ń ever shrinks a value to an invalid value, the test that is being shrunk for might fail for a different reason than for the reason that it originally failed. This would lead to very confusing error messages./ genvalidityĮGenerate a valid value by generating all the sub parts using the kĀ instance, and trying that until a valid value has been generated ŅgenValidStructurally = genValidStructurallyWithoutExtraChecking `suchThat` isValidįThis is probably the function that you are looking for. If you do use this function to override )!, you probably also want to use 1 to override *.0 genvalidityĮGenerate a valid value by generating all the sub parts using the k instance,=This generator is _not_ guaranteed to generate a valid value.ĪThis is probably _not_ the function that you are looking for when overriding )ģ _unless_ the type in question has no _extra_ validity constraints on top of the validity of its sub parts.1 genvalidity—Shrink a term to any of its immediate valid subterms, and also recursively shrink all subterms, and then filtering out the results that are not valid. ×shrinkValidStructurally = filter isValid . shrinkValidStructurallyWithoutExtraFiltering7This is probably the function that you are looking for.2 genvalidityąShrink a term to any of its immediate valid subterms, and also recursively shrink all subterms.ĘThis shrinking function is _not_ guaranteed to shrink to valid values.ĪThis is probably _not_ the function that you are looking for when overriding *ģ _unless_ the type in question has no _extra_ validity constraints on top of the validity of its sub parts.l genvalidity=Recursively shrink all immediate structurally valid subterms.3 genvalidity&All immediate validSubterms of a term.ßmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽi‘’“”•–  !"#$%&'()*+,-./0123()*/012+,-.&'$%3"# ! Safe-Inferredę—˜™š›œžŸ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxuyzuy{uy|uy}uy~uyqr€qrqr‚qrƒqr„qr…qr†qr‡qrˆqr‰qrŠqr‹qrŒqrqrŽqrqrqr‘qr’qr“qr”qr•qr–qr—qr˜qr™qršqr›qrœqrqržqrŸqr qr”qr”qr¢£¤„¦§Ø©Ŗ«*genvalidity-1.1.0.0-Emlxrox36FsILwcgo8VUGBData.GenValidity.UtilsData.GenValidityPaths_genvalidity(QuickCheck-2.14.2-9EAFA6afNUqGbN355JryFuTest.QuickCheck.Arbitrary shrinkListTest.QuickCheck.GenshuffleupTogenSplit genSplit3 genSplit4 genSplit5 genSplit6 genSplit7 genSplit8 arbPartitiongenMaybe genNonEmptyOf genListLength genStringBy genStringBy1 genListOf genListOf1 shrinkMaybe shrinkTuple shrinkTripleshrinkQuadrupleshrinkT2shrinkT3shrinkT4shrinkNonEmptygenIntXgenWordXgenFloat genDouble genFloatX genIntegerGValidSubtermsInclgValidSubtermsInclGValidSubtermsgValidSubtermsGValidRecursivelyShrinkgValidRecursivelyShrink GGenValid gGenValidGenValidgenValid shrinkValidgenUtf16SurrogateCodePointgenLineSeparatorgenNonLineSeparatorgenSingleLineStringgenValidStructurally(genValidStructurallyWithoutExtraCheckingshrinkValidStructurally,shrinkValidStructurallyWithoutExtraFilteringstructurallyValidSubterms $fGGenValidM1$fGGenValid:+:$fGGenValid:*: $fGGenValidU1$fGValidRecursivelyShrinkV1$fGValidRecursivelyShrinkU1$fGValidRecursivelyShrinkM1$fGValidRecursivelyShrink:+:$fGValidRecursivelyShrink:*:$fGValidSubtermsK1b$fGValidSubtermsM1a$fGValidSubtermsU1a$fGValidSubtermsV1a$fGValidRecursivelyShrinkK1 $fGGenValidK1$fGenValidFixed$fGenValidRatio$fGenValidNatural$fGenValidInteger$fGenValidDouble$fGenValidFloat$fGenValidWord64$fGenValidWord32$fGenValidWord16$fGenValidWord8$fGenValidWord$fGenValidInt64$fGenValidInt32$fGenValidInt16$fGenValidInt8 $fGenValidInt$fGenValidChar$fGenValidOrdering$fGenValidBool $fGenValid() $fGenValid[]$fGenValidNonEmpty$fGenValidMaybe$fGenValid(,,,,)$fGenValid(,,,)$fGenValid(,,)$fGenValidEither $fGenValid(,)$fGValidSubtermsInclK1b$fGValidSubtermsInclK1a$fGValidSubtermsInclM1a$fGValidSubtermsIncl:+:a$fGValidSubtermsIncl:*:a$fGValidSubtermsInclU1a$fGValidSubtermsInclV1a$fGValidSubterms:+:a$fGValidSubterms:*:aTest.QuickCheck.Modifiers NonEmptyList(validity-0.12.0.1-6mlV0mbf51v9bIAYpnrw5s Data.ValidityValidity Arbitrarybase GHC.GenericsGeneric"structurallyValidRecursivelyShrinkGHC.Base Semigroup<>MonoidmemptymconcatmappendprettyValidationprettyValidatevalidationIsValid checkValidityconstructValidUnsafeconstructValid isInvalidisValidvalidateRatioNormalisedvalidateRatioNotInfinitevalidateRatioNotNaNvalidateNotInfinitevalidateNotNaN isSingleLinevalidateStringSingleLineisLineSeparatorvalidateCharNotLineSeparatorisUtf16SurrogateCodePoint&validateCharNotUtf16SurrogateCodePointvalidinvalid decorateListdecoratedelveannotatedeclarechecktrivialValidationgenericValidatevalidateValidationChainLocationViolated Validation unValidationversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir