-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data-type like Either but with an accumulating Applicative -- @package validation @version 0.4.1 -- | 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 = (*). -- --
--   >>> _Success # (+1) <*> _Success # 7 :: AccValidation String Int
--   AccSuccess 8
--   
-- --
--   >>> _Failure # ["f1"] <*> _Success # 7 :: AccValidation [String] Int
--   AccFailure ["f1"]
--   
-- --
--   >>> _Success # (+1) <*> _Failure # ["f2"] :: AccValidation [String] Int
--   AccFailure ["f2"]
--   
-- --
--   >>> _Failure # ["f1"] <*> _Failure # ["f2"] :: AccValidation [String] Int
--   AccFailure ["f1","f2"]
--   
data AccValidation err a -- | A value of the type err or a and isomorphic to -- Data.Either. -- --
--   >>> _Success # (+1) <*> _Success # 7 :: Validation String Int
--   Success 8
--   
-- --
--   >>> _Failure # ["f1"] <*> _Success # 7 :: Validation [String] Int
--   Failure ["f1"]
--   
-- --
--   >>> _Success # (+1) <*> _Failure # ["f2"] :: Validation [String] Int
--   Failure ["f2"]
--   
-- --
--   >>> _Failure # ["f1"] <*> _Failure # ["f2"] :: Validation [String] Int
--   Failure ["f1"]
--   
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) type Validation' err a = ValidationT Identity err a _Failure :: Validate f => Prism (f e1 a) (f e2 a) e1 e2 _Success :: Validate f => Prism (f e a) (f e b) a b class Validate f where _Validation' = _ValidationV' _AccValidation = _AccValidationV _Either = _EitherV _Validation :: Validate f => Iso (f e a) (f g b) (Validation e a) (Validation g b) _Validation' :: Validate f => Iso (f e a) (f g b) (Validation' e a) (Validation' g b) _AccValidation :: Validate f => Iso (f e a) (f g b) (AccValidation e a) (AccValidation g b) _Either :: Validate f => Iso (f e a) (f g b) (Either e a) (Either g b) instance [safe] Typeable AccValidation instance [safe] Typeable Validation instance [safe] (Eq err, Eq a) => Eq (AccValidation err a) instance [safe] (Ord err, Ord a) => Ord (AccValidation err a) instance [safe] (Show err, Show a) => Show (AccValidation err a) instance [safe] (Data err, Data a) => Data (AccValidation err a) instance [safe] (Eq err, Eq a) => Eq (Validation err a) instance [safe] (Ord err, Ord a) => Ord (Validation err a) instance [safe] (Show err, Show a) => Show (Validation err a) instance [safe] (Data err, Data a) => Data (Validation err a) instance [safe] Functor f => Swapped (ValidationT f) instance [safe] Swapped Validation instance [safe] Swapped AccValidation instance [safe] Validate Either instance [safe] Validate AccValidation instance [safe] Validate Validation instance [safe] Monad m => Monad (ValidationT m err) instance [safe] (Apply m, Monad m) => Bind (ValidationT m err) instance [safe] Traversable m => Bitraversable (ValidationT m) instance [safe] Foldable m => Bifoldable (ValidationT m) instance [safe] Functor m => Bifunctor (ValidationT m) instance [safe] Traversable m => Traversable (ValidationT m err) instance [safe] Foldable m => Foldable (ValidationT m err) instance [safe] (Functor m, Monad m) => Alt (ValidationT m err) instance [safe] Applicative m => Applicative (ValidationT m err) instance [safe] Apply m => Apply (ValidationT m err) instance [safe] Functor m => Functor (ValidationT m err) instance [safe] Monad (Validation err) instance [safe] Bind (Validation err) instance [safe] Bitraversable Validation instance [safe] Bifoldable Validation instance [safe] Bifunctor Validation instance [safe] Traversable (Validation err) instance [safe] Foldable (Validation err) instance [safe] Alt (Validation err) instance [safe] Applicative (Validation err) instance [safe] Apply (Validation err) instance [safe] Functor (Validation err) instance [safe] Monoid e => Monoid (AccValidation e a) instance [safe] Semigroup e => Semigroup (AccValidation e a) instance [safe] Bitraversable AccValidation instance [safe] Bifoldable AccValidation instance [safe] Bifunctor AccValidation instance [safe] Traversable (AccValidation err) instance [safe] Foldable (AccValidation err) instance [safe] Semigroup err => Alt (AccValidation err) instance [safe] Semigroup err => Applicative (AccValidation err) instance [safe] Semigroup err => Apply (AccValidation err) instance [safe] Functor (AccValidation err)