úÎ!A”>D,      !"#$%&'()*+Safe £ validatorsA  is very similar to ,% in that it contains a value of type e or a]. In contrast to Either however, Validation accumulates all errors it comes across in it's - instance.:A complete example where Validation is used can be found  ,https://github.com/luc-tielen/validators.githere. validatorsConversion function from  to ,.toEither (Failure 1)Left 1toEither (Success True) Right True validatorsConversion function from , to .fromEither (Left 1) Failure 1fromEither (Right True) Success TrueSafe=?=i  validatorsMHelper typeclass for checking if a value contains only whitespace characters. validators2Helper typeclass for checking if a value is empty. validators:Datatype for checking if a validation holds for a subject.subject> can be any data type for which assertions need to be checked.err‡ can be any type representing an error, but it will only be possible to combine validators if the error type has a Semigroup instance.)Execute a validator by passing it to the  function.A Validator is both a . and a /™, making it possible to combine smaller validators into larger validators. A combined validator will accumulate errors from all of it's sub-validators.0 validators,Helper data type resembling the result of a  assertion.vThere are only 2 possible results: 1. Ok: the validator assertion succeeded. 2. Err: the validator assertion failed.Only used internally in the * type to keep track of accumulated errors. validatorsRuns a validator on a subject.The result is a A containing all accumulated errors, or the subject wrapped in a  value. validatorsRCreates a validator that will return an error if the given predicate doesn't hold.”Since any predicate can be provided for checking if the subject satisfies certain conditions, this can be used to build your own custom validators.Usage:+let validator = assert (> 10) ["too small"]validate validator 11 Success 11validate validator 1Failure ["too small"] validatorsKCreates a validator that will return an error if the given predicate holds.”Since any predicate can be provided for checking if the subject satisfies certain conditions, this can be used to build your own custom validators.Usage:)let validator = refute (> 10) ["too big"]validate validator 11Failure ["too big"]validate validator 1 Success 1 validatorsReturns an error if a 1 is 2.Usage:,let validator = ifNothing ["Found nothing."]validate validator NothingFailure ["Found nothing."]validate validator (Just "Bob")Success (Just "Bob") validatorsReturns an error if an , contains a 3.Usage:&let validator = ifLeft ["Found left."]validate validator (Left 123)Failure ["Found left."]validate validator (Right 456)Success (Right 456) validators:Returns an error if the function returns an "empty" value.Usage:"let validator = ifEmpty ["Empty."]validate validator []Failure ["Empty."]validate validator [1, 2, 3]Success [1,2,3]6validate validator (Map.fromList [('a', 1), ('b', 2)])$Success (fromList [('a',1),('b',2)]) validators?Returns an error if the value has a size smaller than required.Usage:(let validator = minSize 3 ["Too small."]validate validator []Failure ["Too small."]validate validator [1, 2]Failure ["Too small."]validate validator [1, 2, 3]Success [1,2,3] validators?Returns an error if the value has a size smaller than required.Usage:&let validator = maxSize 3 ["Too big."]validate validator [1, 2, 3, 4]Failure ["Too big."]validate validator [1, 2, 3]Success [1,2,3] validatorsLReturns an error if the function returns a value containing only whitespace.Usage:,let validator = ifBlank ["Only whitespace."]!validate validator " \t \n \r "Failure ["Only whitespace."]validate validator "not empty"Success "not empty"Safe>456789:;<      !"#$%&'()*+,-./012034035036708908:01;<=>?@ABCD'validators-0.0.1-JjYYvrcEjfVIilhFhBxm2xData.ValidationData.ValidatorPaths_validators ValidationFailureSuccesstoEither fromEither$fApplicativeValidation$fBitraversableValidation$fTraversableValidation$fBifoldableValidation$fFoldableValidation$fBifunctorValidation$fFunctorValidation$fEqValidation$fShowValidation$fOrdValidationIsOnlyWhiteSpaceisOnlyWhiteSpaceHasSizesizeisEmpty Validatorvalidateassertrefute ifNothingifLeftifEmptyminSizemaxSizeifBlank$fMonoidResult$fSemigroupResult$fContravariantValidator$fMonoidValidator$fSemigroupValidator $fHasSizeSeq $fHasSizeSet $fHasSizeMap $fHasSize[]$fIsOnlyWhiteSpaceText$fIsOnlyWhiteSpaceText0$fIsOnlyWhiteSpace[] $fEqResult $fShowResultbase Data.EitherEitherGHC.Base Applicative SemigroupMonoidResult GHC.MaybeMaybeNothingLeftversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName