Îõ³h$TTÙ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXNone 89>?ÀÇÖ×Ê/validity!The result of validating a value. means the value was valid.'This type intentionally doesn't have a  7 instance to make sure you can never accidentally use  or  twice. validityÂA class of types that have additional invariants defined upon themvalidity+Declare any value to be valid in validation "trivialValidation a = seq a memptyvalidity#Check that a given invariant holds.ÂThe given string should describe the invariant, not the violation.Example: ,check (x < 5) "x is strictly smaller than 5" instead of #check (x < 5) "x is greater than 5"validity , but with the arguments flippedvalidityÓDeclare a sub-part as a necessary part for validation, and annotate it with a name.Example: ”validate (a, b) = mconcat [ annotate a "The first element of the tuple" , annotate b "The second element of the tuple" ]validity!, but with the arguments flipped.validity%Decorate a validation with a locationvalidityÉDecorate a piecewise validation of a list with their location in the listvalidityConstruct a trivially invalid Example: ºdata Wrong = Wrong | Fine deriving (Show, Eq) instance Validity Wrong where validate w = case w of Wrong -> invalid "Wrong" Fine -> valid#validityCheck whether a value is valid.$validity#Check whether a value is not valid. isInvalid = not . isValid%validity3Construct a valid element from an unchecked element&validity>Construct a valid element from an unchecked element, throwing Y on invalid elements.'validityvalidate a given value.çThis function returns either all the reasons why the given value is invalid, in the form of a list of  s, or it returns Z5 with the input value, as evidence that it is valid.Note: You may want to use *( instead, if you want to display these   s to a user.(validity Check if a  concerns a valid value.)validityValidate a given valueæThis function will return a nice error if the value is invalid. It will return the original value in Z: if it was valid, as evidence that it has been validated.*validity Render a  in a somewhat pretty way.This function will return [ if the  concerned a valid value.5validity!Valid according to the contained \.6validityÓValid if the contained numbers are valid and the denominator is strictly positive.7validityValid according to ]8validityTrivially validÂInteger is not trivially valid under the hood, but instantiating  Î correctly would force validity to depend on a specific (big integer library  integer-gmp versus integer-simpleÙ). This is rather impractical so for the time being we have opted for assuming that an \Ø is always valid. Even though this is not technically sound, it is good enough for now.9validityTrivially valid::validityTrivially valid:;validityTrivially valid<validityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.=validityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.>validityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.?validityTrivially valid@validityTrivially validAvalidityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.BvalidityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.CvalidityéNOT trivially valid on GHC because small number types are represented using a 64bit structure underneath.DvalidityTrivially validEvalidityTrivially validFvalidityTrivially validGvalidityTrivially validHvalidityTrivially validIvalidityãA Maybe thing is valid if the thing inside is valid or it's nothing It makes sense to assume that [Ú is valid. If Nothing wasn't valid, you wouldn't have used a Maybe in the datastructure.Jvalidity7A nonempty list is valid if all the elements are valid.9See the instance for 'Validity [a]' for more information.Kvalidity9A list of things is valid if all of the things are valid.¥This means that the empty list is considered valid. If the empty list should not be considered valid as part of your custom data type, make sure to write a custom Validity instanceLvalidityÄAny sextuple of things is valid if all six of its elements are validMvalidityÆAny quintuple of things is valid if all five of its elements are validNvalidityÆAny quadruple of things is valid if all four of its elements are validOvalidityÄAny triple of things is valid if all three of its elements are validPvalidityÏAny Either of things is valid if the contents are valid in either of the cases.Qvalidity>Any tuple of things is valid if both of its elements are valid+  !"#$%&'()*+  !"#$%& '()* Safe-InferredG^_`abcdeæ       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoð(validity-0.12.0.1-Fxt2dghmNv73GbUV3FGeYE Data.ValidityPaths_validitybaseGHC.Base<>memptymappendmconcat SemigroupMonoid Validation unValidationValidationChainViolatedLocationValidityvalidategenericValidatetrivialValidationcheckdeclareannotatedelvedecorate decorateListinvalidvalid&validateCharNotUtf16SurrogateCodePointisUtf16SurrogateCodePointvalidateCharNotLineSeparatorisLineSeparatorvalidateStringSingleLine isSingleLinevalidateNotNaNvalidateNotInfinitevalidateRatioNotNaNvalidateRatioNotInfinitevalidateRatioNormalisedisValid isInvalidconstructValidconstructValidUnsafe checkValidityvalidationIsValidprettyValidateprettyValidation$fMonoidValidation$fSemigroupValidation $fGValidityM1$fGValidityM10$fGValidityM11$fGValidity:+:$fGValidity:*: $fGValidityV1 $fGValidityU1 $fGValidityK1$fValidityFixed$fValidityRatio$fValidityNatural$fValidityInteger$fValidityDouble$fValidityFloat$fValidityWord64$fValidityWord32$fValidityWord16$fValidityWord8$fValidityWord$fValidityInt64$fValidityInt32$fValidityInt16$fValidityInt8 $fValidityInt$fValidityChar$fValidityOrdering$fValidityBool $fValidity()$fValidityMaybe$fValidityNonEmpty $fValidity[]$fValidity(,,,,,)$fValidity(,,,,)$fValidity(,,,)$fValidity(,,)$fValidityEither $fValidity(,)$fValidityValidationChain$fShowValidation$fEqValidation$fGenericValidation$fShowValidationChain$fEqValidationChain$fGenericValidationChainGHC.Errerror Data.EitherRight GHC.MaybeNothinginteger-wired-inGHC.Integer.TypeInteger GHC.NaturalisValidNaturalversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName