A Validation is either a value of the type err or a, similar to Either. However,
the Applicative instance for Validation accumulates errors using a Semigroup on err.
In contrast, the Applicative for Either returns only the first error.
A consequence of this is that Validation has no Bind or Monad instance. This is because
such an instance would violate the law that a Monad's ap must equal the
Applicative's <*>
An example of typical usage can be found here.
Instances20Bifoldable, Bifunctor, Bitraversable, Swap, Validate, Functor, …
Bifoldable ValidationDefined in validation-1.1.3 · Data.ValidationBifunctor ValidationDefined in validation-1.1.3 · Data.ValidationBitraversable ValidationDefined in validation-1.1.3 · Data.ValidationSwap ValidationDefined in validation-1.1.3 · Data.ValidationValidate ValidationDefined in validation-1.1.3 · Data.ValidationFunctor (Validation err)Defined in validation-1.1.3 · Data.ValidationSemigroup err => Applicative (Validation err)Defined in validation-1.1.3 · Data.ValidationFoldable (Validation err)Defined in validation-1.1.3 · Data.ValidationTraversable (Validation err)Defined in validation-1.1.3 · Data.ValidationAlt (Validation err)Defined in validation-1.1.3 · Data.ValidationFor two errors, this instance reports only the last of them.
Semigroup err => Apply (Validation err)Defined in validation-1.1.3 · Data.Validation(Eq err, Eq a) => Eq (Validation err a)Defined in validation-1.1.3 · Data.Validation(Data err, Data a) => Data (Validation err a)Defined in validation-1.1.3 · Data.Validation(Ord err, Ord a) => Ord (Validation err a)Defined in validation-1.1.3 · Data.Validation(Show err, Show a) => Show (Validation err a)Defined in validation-1.1.3 · Data.ValidationGeneric (Validation err a)Defined in validation-1.1.3 · Data.ValidationSemigroup e => Semigroup (Validation e a)Defined in validation-1.1.3 · Data.ValidationMonoid e => Monoid (Validation e a)Defined in validation-1.1.3 · Data.Validation(NFData e, NFData a) => NFData (Validation e a)Defined in validation-1.1.3 · Data.Validationtype Rep (Validation err a) = D1 ('MetaDataDefined in validation-1.1.3 · Data.Validation"Validation"
"Data.Validation"
"validation-1.1.3-1HbDei45H9c1IpkZWyAMc1"
'False) (C1 ('MetaCons"Failure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 err)) :+: C1 ('MetaCons"Success"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))