-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data-type like Either but with an accumulating Applicative -- -- A data-type like Either but with an accumulating Applicative @package Validation @version 0.2.0 -- | Data types similar to Data.Either that are explicit about -- failure and success. module Data.Validation -- | A value of the type err or a, however, the -- Applicative instance accumulates values. This is witnessed by -- the Semigroup context on the instance. Note that there is -- no @Monad@ such that @ap = (<*>). -- --
data AccValidation err a -- | A value of the type err or a and isomorphic to -- Data.Either. data Validation err a -- | The transformer version of Validation. data ValidationT m err a ValidationT :: m (Validation err a) -> ValidationT m err a runValidationT :: ValidationT m err a -> m (Validation err a) -- | Construction for validation values. class Validate v success :: Validate v => a -> v err a failure :: Validate v => err -> v err a instance Typeable2 AccValidation instance Typeable2 Validation instance (Eq err, Eq a) => Eq (AccValidation err a) instance (Ord err, Ord a) => Ord (AccValidation err a) instance (Show err, Show a) => Show (AccValidation err a) instance (Data err, Data a) => Data (AccValidation err a) instance (Eq err, Eq a) => Eq (Validation err a) instance (Ord err, Ord a) => Ord (Validation err a) instance (Show err, Show a) => Show (Validation err a) instance (Data err, Data a) => Data (Validation err a) instance Applicative m => Validate (ValidationT m) instance Validate Validation instance Validate AccValidation instance Monad m => Monad (ValidationT m err) instance (Apply m, Monad m) => Bind (ValidationT m err) instance Traversable m => Bitraversable (ValidationT m) instance Foldable m => Bifoldable (ValidationT m) instance Functor m => Bifunctor (ValidationT m) instance Traversable m => Traversable (ValidationT m err) instance Foldable m => Foldable (ValidationT m err) instance (Applicative m, Monad m, Monoid err) => Alternative (ValidationT m err) instance (Functor m, Monad m) => Alt (ValidationT m err) instance Applicative m => Applicative (ValidationT m err) instance Apply m => Apply (ValidationT m err) instance Functor m => Functor (ValidationT m err) instance Monad (Validation err) instance Bind (Validation err) instance Bitraversable Validation instance Bifoldable Validation instance Bifunctor Validation instance Traversable (Validation err) instance Foldable (Validation err) instance Monoid err => Alternative (Validation err) instance Alt (Validation err) instance Applicative (Validation err) instance Apply (Validation err) instance Functor (Validation err) instance Monoid e => Monoid (AccValidation e a) instance Semigroup e => Semigroup (AccValidation e a) instance Bitraversable AccValidation instance Bifoldable AccValidation instance Bifunctor AccValidation instance Traversable (AccValidation err) instance Foldable (AccValidation err) instance (Semigroup err, Monoid err) => Alternative (AccValidation err) instance Semigroup err => Alt (AccValidation err) instance Semigroup err => Applicative (AccValidation err) instance Semigroup err => Apply (AccValidation err) instance Functor (AccValidation err)