-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data-type like Either but with an accumulating Applicative -- -- -- 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. -- --
-- >>> _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 AccFailure :: err -> AccValidation err a AccSuccess :: a -> 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 Failure :: err -> Validation err a Success :: a -> Validation err a -- | The transformer version of Validation. data ValidationT err m a ValidationT :: m (Validation err a) -> ValidationT err m a [runValidationT] :: ValidationT err m a -> m (Validation err a) -- | The bifunctor version of ValidationT data ValidationB m err a ValidationB :: m (Validation err a) -> ValidationB m err a [runValidationB] :: ValidationB m err a -> m (Validation err a) type Validation' err a = ValidationT err Identity 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 (Data.Data.Data a, Data.Data.Data err) => Data.Data.Data (Data.Validation.Validation err a) instance (GHC.Show.Show a, GHC.Show.Show err) => GHC.Show.Show (Data.Validation.Validation err a) instance (GHC.Classes.Ord a, GHC.Classes.Ord err) => GHC.Classes.Ord (Data.Validation.Validation err a) instance (GHC.Classes.Eq a, GHC.Classes.Eq err) => GHC.Classes.Eq (Data.Validation.Validation err a) instance (Data.Data.Data a, Data.Data.Data err) => Data.Data.Data (Data.Validation.AccValidation err a) instance (GHC.Show.Show a, GHC.Show.Show err) => GHC.Show.Show (Data.Validation.AccValidation err a) instance (GHC.Classes.Ord a, GHC.Classes.Ord err) => GHC.Classes.Ord (Data.Validation.AccValidation err a) instance (GHC.Classes.Eq a, GHC.Classes.Eq err) => GHC.Classes.Eq (Data.Validation.AccValidation err a) instance GHC.Base.Functor (Data.Validation.AccValidation err) instance Data.Semigroup.Semigroup err => Data.Functor.Bind.Class.Apply (Data.Validation.AccValidation err) instance Data.Semigroup.Semigroup err => GHC.Base.Applicative (Data.Validation.AccValidation err) instance Data.Functor.Alt.Alt (Data.Validation.AccValidation err) instance Data.Foldable.Foldable (Data.Validation.AccValidation err) instance Data.Traversable.Traversable (Data.Validation.AccValidation err) instance Data.Bifunctor.Bifunctor Data.Validation.AccValidation instance Data.Bifoldable.Bifoldable Data.Validation.AccValidation instance Data.Bitraversable.Bitraversable Data.Validation.AccValidation instance Data.Semigroup.Semigroup e => Data.Semigroup.Semigroup (Data.Validation.AccValidation e a) instance GHC.Base.Monoid e => GHC.Base.Monoid (Data.Validation.AccValidation e a) instance GHC.Base.Functor (Data.Validation.Validation err) instance Data.Functor.Bind.Class.Apply (Data.Validation.Validation err) instance GHC.Base.Applicative (Data.Validation.Validation err) instance Data.Functor.Alt.Alt (Data.Validation.Validation err) instance Data.Foldable.Foldable (Data.Validation.Validation err) instance Data.Traversable.Traversable (Data.Validation.Validation err) instance Data.Bifunctor.Bifunctor Data.Validation.Validation instance Data.Bifoldable.Bifoldable Data.Validation.Validation instance Data.Bitraversable.Bitraversable Data.Validation.Validation instance Data.Functor.Bind.Class.Bind (Data.Validation.Validation err) instance GHC.Base.Monad (Data.Validation.Validation err) instance GHC.Base.Functor m => GHC.Base.Functor (Data.Validation.ValidationT err m) instance Data.Functor.Bind.Class.Apply m => Data.Functor.Bind.Class.Apply (Data.Validation.ValidationT err m) instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Validation.ValidationT err m) instance (GHC.Base.Functor m, GHC.Base.Monad m) => Data.Functor.Alt.Alt (Data.Validation.ValidationT err m) instance Data.Foldable.Foldable m => Data.Foldable.Foldable (Data.Validation.ValidationT err m) instance Data.Traversable.Traversable m => Data.Traversable.Traversable (Data.Validation.ValidationT err m) instance (Data.Functor.Bind.Class.Apply m, GHC.Base.Monad m) => Data.Functor.Bind.Class.Bind (Data.Validation.ValidationT err m) instance GHC.Base.Monad m => GHC.Base.Monad (Data.Validation.ValidationT err m) instance Control.Monad.Trans.Class.MonadTrans (Data.Validation.ValidationT err) instance GHC.Base.Functor m => GHC.Base.Functor (Data.Validation.ValidationB m err) instance Data.Functor.Bind.Class.Apply m => Data.Functor.Bind.Class.Apply (Data.Validation.ValidationB m err) instance GHC.Base.Applicative m => GHC.Base.Applicative (Data.Validation.ValidationB m err) instance (GHC.Base.Functor m, GHC.Base.Monad m) => Data.Functor.Alt.Alt (Data.Validation.ValidationB m err) instance Data.Foldable.Foldable m => Data.Foldable.Foldable (Data.Validation.ValidationB m err) instance Data.Traversable.Traversable m => Data.Traversable.Traversable (Data.Validation.ValidationB m err) instance GHC.Base.Functor m => Data.Bifunctor.Bifunctor (Data.Validation.ValidationB m) instance Data.Foldable.Foldable m => Data.Bifoldable.Bifoldable (Data.Validation.ValidationB m) instance Data.Traversable.Traversable m => Data.Bitraversable.Bitraversable (Data.Validation.ValidationB m) instance (Data.Functor.Bind.Class.Apply m, GHC.Base.Monad m) => Data.Functor.Bind.Class.Bind (Data.Validation.ValidationB m err) instance GHC.Base.Monad m => GHC.Base.Monad (Data.Validation.ValidationB m err) instance Data.Validation.Validate Data.Validation.Validation instance Data.Validation.Validate Data.Validation.AccValidation instance Data.Validation.Validate Data.Either.Either instance m ~ Data.Functor.Identity.Identity => Data.Validation.Validate (Data.Validation.ValidationB m) instance Control.Lens.Iso.Swapped Data.Validation.AccValidation instance Control.Lens.Iso.Swapped Data.Validation.Validation instance GHC.Base.Functor f => Control.Lens.Iso.Swapped (Data.Validation.ValidationB f)