Validation type and associated functions.

Data Types

data Validation err a

A Validation represents eithor a non-empty list of errors, or a successful value. This generalizes Either to allow more than one error to be collected.

Errors (NonEmpty err)

Success a

instance Foldable (Validation err)

instance Applicative (Validation err)

instance Semigroup (Validation err a)

instance Traversable (Validation err)

instance Functor (Validation err)

instance (Eq err, Eq a) => Eq (Validation err a)

instance (Show err, Show a) => Show (Validation err a)



: err -> Validation err a

Fail for the given reason.


: a -> Validation err a

Succeed with the given value.


: Either err a -> Validation err a

Turn an Either into a Validation.


: Validation err a -> Either (NonEmpty err) a

Convert a Validation err a value into an Either, taking the non-empty list of errors as the left value.


: Validation err a -> Either err a

Convert a Validation err a value into an Either, taking just the first error as the left value.


: a -> Validation err a -> a

Run a Validation err a with a default value in case of errors.


: Optional b -> err -> Validation err b

Convert an Optional t into a Validation err t, or more generally into an m t for any ActionFail type m.