<<http://i.imgur.com/Ns5hntl.jpg>>
Several data-types like Either but with differing properties and type-class instances.
Library support is provided for those different representations, include
lens-related functions for converting between each and abstracting over their similarities.
AccValidationThe AccValidation data type is isomorphic to Either, but has an instance of
Applicative that accumulates on the error side. That is to say, if two (or
more) errors are encountered, they are appended using a Semigroup operation.
As a consequence of this Applicative instance, there is no corresponding
Bind or Monad instance. AccValidation is an example of, "An applicative
functor that is not a monad."
ValidationThe Validation data type is isomorphic to Either and has a Monad instance
that does the same as Either. The only difference to Either is the
constructor names and surrounding library support.
ValidationTThe ValidationT data type is the monad transformer for Validation.
An instance of MonadTrans is provided for (ValidationT err). Due to the
arrangement of the ValidationT type constructor, which permits a MonadTrans instance, there is no possibleBifunctorinstance. Consequently, theValidationBdata type provides aBifunctorinstance (but not aMonadTransinstance). Library support is provided to exploit the isomorphism toValidationB`.
Note that since AccValidation is not a monad, there is also no corresponding
monad transformer for this data type.
ValidationBThe ValidationB data type is similar to the monad transformer for
Validation (ValidationT), however, due to the arrangement of the
ValidationB type constructor, which permits a Bifunctor instance, there is
no possible MonadTrans instance. Consequently, the ValidationT data type
provides a MonadTrans instance (but not a Bifunctor instance).
Library support is provided to exploit the isomorphism to ValidationT.
Validation'The Validation' err a type-alias is equivalent to ValidationT err Identity a and so is isomorphic to Either and others. Libraries are supplied
accordingly.
| Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
|---|---|---|---|---|---|
| 0.5.4-bp150.1.3 info | GA Release | 2018-07-30 | 15 |
|
|