validation-0.5.4: A data-type like Either but with an accumulating Applicative

Safe HaskellNone
LanguageHaskell2010

Data.Validation

Contents

Description

Data types similar to Data.Either that are explicit about failure and success.

Synopsis

Data types

data AccValidation err a Source #

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"]

Constructors

AccFailure err 
AccSuccess a 

Instances

Bifunctor AccValidation Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> AccValidation a c -> AccValidation b d #

first :: (a -> b) -> AccValidation a c -> AccValidation b c #

second :: (b -> c) -> AccValidation a b -> AccValidation a c #

Bitraversable AccValidation Source # 

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> AccValidation a b -> f (AccValidation c d) #

Bifoldable AccValidation Source # 

Methods

bifold :: Monoid m => AccValidation m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> AccValidation a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> AccValidation a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> AccValidation a b -> c #

Swapped AccValidation Source # 

Methods

swapped :: (Profunctor p, Functor f) => p (AccValidation b a) (f (AccValidation d c)) -> p (AccValidation a b) (f (AccValidation c d)) #

Validate AccValidation Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

Functor (AccValidation err) Source # 

Methods

fmap :: (a -> b) -> AccValidation err a -> AccValidation err b #

(<$) :: a -> AccValidation err b -> AccValidation err a #

Semigroup err => Applicative (AccValidation err) Source # 

Methods

pure :: a -> AccValidation err a #

(<*>) :: AccValidation err (a -> b) -> AccValidation err a -> AccValidation err b #

(*>) :: AccValidation err a -> AccValidation err b -> AccValidation err b #

(<*) :: AccValidation err a -> AccValidation err b -> AccValidation err a #

Foldable (AccValidation err) Source # 

Methods

fold :: Monoid m => AccValidation err m -> m #

foldMap :: Monoid m => (a -> m) -> AccValidation err a -> m #

foldr :: (a -> b -> b) -> b -> AccValidation err a -> b #

foldr' :: (a -> b -> b) -> b -> AccValidation err a -> b #

foldl :: (b -> a -> b) -> b -> AccValidation err a -> b #

foldl' :: (b -> a -> b) -> b -> AccValidation err a -> b #

foldr1 :: (a -> a -> a) -> AccValidation err a -> a #

foldl1 :: (a -> a -> a) -> AccValidation err a -> a #

toList :: AccValidation err a -> [a] #

null :: AccValidation err a -> Bool #

length :: AccValidation err a -> Int #

elem :: Eq a => a -> AccValidation err a -> Bool #

maximum :: Ord a => AccValidation err a -> a #

minimum :: Ord a => AccValidation err a -> a #

sum :: Num a => AccValidation err a -> a #

product :: Num a => AccValidation err a -> a #

Traversable (AccValidation err) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> AccValidation err a -> f (AccValidation err b) #

sequenceA :: Applicative f => AccValidation err (f a) -> f (AccValidation err a) #

mapM :: Monad m => (a -> m b) -> AccValidation err a -> m (AccValidation err b) #

sequence :: Monad m => AccValidation err (m a) -> m (AccValidation err a) #

Alt (AccValidation err) Source # 

Methods

(<!>) :: AccValidation err a -> AccValidation err a -> AccValidation err a #

some :: Applicative (AccValidation err) => AccValidation err a -> AccValidation err [a] #

many :: Applicative (AccValidation err) => AccValidation err a -> AccValidation err [a] #

Semigroup err => Apply (AccValidation err) Source # 

Methods

(<.>) :: AccValidation err (a -> b) -> AccValidation err a -> AccValidation err b #

(.>) :: AccValidation err a -> AccValidation err b -> AccValidation err b #

(<.) :: AccValidation err a -> AccValidation err b -> AccValidation err a #

(Eq a, Eq err) => Eq (AccValidation err a) Source # 

Methods

(==) :: AccValidation err a -> AccValidation err a -> Bool #

(/=) :: AccValidation err a -> AccValidation err a -> Bool #

(Data a, Data err) => Data (AccValidation err a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AccValidation err a -> c (AccValidation err a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (AccValidation err a) #

toConstr :: AccValidation err a -> Constr #

dataTypeOf :: AccValidation err a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (AccValidation err a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (AccValidation err a)) #

gmapT :: (forall b. Data b => b -> b) -> AccValidation err a -> AccValidation err a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AccValidation err a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AccValidation err a -> r #

gmapQ :: (forall d. Data d => d -> u) -> AccValidation err a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AccValidation err a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AccValidation err a -> m (AccValidation err a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AccValidation err a -> m (AccValidation err a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AccValidation err a -> m (AccValidation err a) #

(Ord a, Ord err) => Ord (AccValidation err a) Source # 

Methods

compare :: AccValidation err a -> AccValidation err a -> Ordering #

(<) :: AccValidation err a -> AccValidation err a -> Bool #

(<=) :: AccValidation err a -> AccValidation err a -> Bool #

(>) :: AccValidation err a -> AccValidation err a -> Bool #

(>=) :: AccValidation err a -> AccValidation err a -> Bool #

max :: AccValidation err a -> AccValidation err a -> AccValidation err a #

min :: AccValidation err a -> AccValidation err a -> AccValidation err a #

(Show a, Show err) => Show (AccValidation err a) Source # 

Methods

showsPrec :: Int -> AccValidation err a -> ShowS #

show :: AccValidation err a -> String #

showList :: [AccValidation err a] -> ShowS #

Semigroup e => Semigroup (AccValidation e a) Source #
((x <> y) <> z) == (x <> (y <> z :: AccValidation [String] Int))
Monoid e => Monoid (AccValidation e a) Source #
((x `mappend` y) `mappend` z) == (x `mappend` (y `mappend` z :: AccValidation [String] Int))
mempty `mappend` x == (x :: AccValidation [String] Int)
x `mappend` mempty == (x :: AccValidation [String] Int)

data Validation err a Source #

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"]

Constructors

Failure err 
Success a 

Instances

Bifunctor Validation Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> Validation a c -> Validation b d #

first :: (a -> b) -> Validation a c -> Validation b c #

second :: (b -> c) -> Validation a b -> Validation a c #

Bitraversable Validation Source # 

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Validation a b -> f (Validation c d) #

Bifoldable Validation Source # 

Methods

bifold :: Monoid m => Validation m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Validation a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Validation a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Validation a b -> c #

Swapped Validation Source # 

Methods

swapped :: (Profunctor p, Functor f) => p (Validation b a) (f (Validation d c)) -> p (Validation a b) (f (Validation c d)) #

Validate Validation Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (Validation e a) (f (Validation g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (Validation e a) (f (Validation g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (Validation e a) (f (Validation g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (Validation e a) (f (Validation g b)) Source #

Monad (Validation err) Source # 

Methods

(>>=) :: Validation err a -> (a -> Validation err b) -> Validation err b #

(>>) :: Validation err a -> Validation err b -> Validation err b #

return :: a -> Validation err a #

fail :: String -> Validation err a #

Functor (Validation err) Source # 

Methods

fmap :: (a -> b) -> Validation err a -> Validation err b #

(<$) :: a -> Validation err b -> Validation err a #

Applicative (Validation err) Source # 

Methods

pure :: a -> Validation err a #

(<*>) :: Validation err (a -> b) -> Validation err a -> Validation err b #

(*>) :: Validation err a -> Validation err b -> Validation err b #

(<*) :: Validation err a -> Validation err b -> Validation err a #

Foldable (Validation err) Source # 

Methods

fold :: Monoid m => Validation err m -> m #

foldMap :: Monoid m => (a -> m) -> Validation err a -> m #

foldr :: (a -> b -> b) -> b -> Validation err a -> b #

foldr' :: (a -> b -> b) -> b -> Validation err a -> b #

foldl :: (b -> a -> b) -> b -> Validation err a -> b #

foldl' :: (b -> a -> b) -> b -> Validation err a -> b #

foldr1 :: (a -> a -> a) -> Validation err a -> a #

foldl1 :: (a -> a -> a) -> Validation err a -> a #

toList :: Validation err a -> [a] #

null :: Validation err a -> Bool #

length :: Validation err a -> Int #

elem :: Eq a => a -> Validation err a -> Bool #

maximum :: Ord a => Validation err a -> a #

minimum :: Ord a => Validation err a -> a #

sum :: Num a => Validation err a -> a #

product :: Num a => Validation err a -> a #

Traversable (Validation err) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Validation err a -> f (Validation err b) #

sequenceA :: Applicative f => Validation err (f a) -> f (Validation err a) #

mapM :: Monad m => (a -> m b) -> Validation err a -> m (Validation err b) #

sequence :: Monad m => Validation err (m a) -> m (Validation err a) #

Alt (Validation err) Source # 

Methods

(<!>) :: Validation err a -> Validation err a -> Validation err a #

some :: Applicative (Validation err) => Validation err a -> Validation err [a] #

many :: Applicative (Validation err) => Validation err a -> Validation err [a] #

Apply (Validation err) Source # 

Methods

(<.>) :: Validation err (a -> b) -> Validation err a -> Validation err b #

(.>) :: Validation err a -> Validation err b -> Validation err b #

(<.) :: Validation err a -> Validation err b -> Validation err a #

Bind (Validation err) Source # 

Methods

(>>-) :: Validation err a -> (a -> Validation err b) -> Validation err b #

join :: Validation err (Validation err a) -> Validation err a #

(Eq a, Eq err) => Eq (Validation err a) Source # 

Methods

(==) :: Validation err a -> Validation err a -> Bool #

(/=) :: Validation err a -> Validation err a -> Bool #

(Data a, Data err) => Data (Validation err a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Validation err a -> c (Validation err a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Validation err a) #

toConstr :: Validation err a -> Constr #

dataTypeOf :: Validation err a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Validation err a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Validation err a)) #

gmapT :: (forall b. Data b => b -> b) -> Validation err a -> Validation err a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Validation err a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Validation err a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Validation err a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Validation err a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Validation err a -> m (Validation err a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Validation err a -> m (Validation err a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Validation err a -> m (Validation err a) #

(Ord a, Ord err) => Ord (Validation err a) Source # 

Methods

compare :: Validation err a -> Validation err a -> Ordering #

(<) :: Validation err a -> Validation err a -> Bool #

(<=) :: Validation err a -> Validation err a -> Bool #

(>) :: Validation err a -> Validation err a -> Bool #

(>=) :: Validation err a -> Validation err a -> Bool #

max :: Validation err a -> Validation err a -> Validation err a #

min :: Validation err a -> Validation err a -> Validation err a #

(Show a, Show err) => Show (Validation err a) Source # 

Methods

showsPrec :: Int -> Validation err a -> ShowS #

show :: Validation err a -> String #

showList :: [Validation err a] -> ShowS #

data ValidationT err m a Source #

The transformer version of Validation.

Constructors

ValidationT 

Fields

Instances

MonadTrans (ValidationT err) Source # 

Methods

lift :: Monad m => m a -> ValidationT err m a #

Monad m => Monad (ValidationT err m) Source # 

Methods

(>>=) :: ValidationT err m a -> (a -> ValidationT err m b) -> ValidationT err m b #

(>>) :: ValidationT err m a -> ValidationT err m b -> ValidationT err m b #

return :: a -> ValidationT err m a #

fail :: String -> ValidationT err m a #

Functor m => Functor (ValidationT err m) Source # 

Methods

fmap :: (a -> b) -> ValidationT err m a -> ValidationT err m b #

(<$) :: a -> ValidationT err m b -> ValidationT err m a #

Applicative m => Applicative (ValidationT err m) Source # 

Methods

pure :: a -> ValidationT err m a #

(<*>) :: ValidationT err m (a -> b) -> ValidationT err m a -> ValidationT err m b #

(*>) :: ValidationT err m a -> ValidationT err m b -> ValidationT err m b #

(<*) :: ValidationT err m a -> ValidationT err m b -> ValidationT err m a #

Foldable m => Foldable (ValidationT err m) Source # 

Methods

fold :: Monoid m => ValidationT err m m -> m #

foldMap :: Monoid m => (a -> m) -> ValidationT err m a -> m #

foldr :: (a -> b -> b) -> b -> ValidationT err m a -> b #

foldr' :: (a -> b -> b) -> b -> ValidationT err m a -> b #

foldl :: (b -> a -> b) -> b -> ValidationT err m a -> b #

foldl' :: (b -> a -> b) -> b -> ValidationT err m a -> b #

foldr1 :: (a -> a -> a) -> ValidationT err m a -> a #

foldl1 :: (a -> a -> a) -> ValidationT err m a -> a #

toList :: ValidationT err m a -> [a] #

null :: ValidationT err m a -> Bool #

length :: ValidationT err m a -> Int #

elem :: Eq a => a -> ValidationT err m a -> Bool #

maximum :: Ord a => ValidationT err m a -> a #

minimum :: Ord a => ValidationT err m a -> a #

sum :: Num a => ValidationT err m a -> a #

product :: Num a => ValidationT err m a -> a #

Traversable m => Traversable (ValidationT err m) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> ValidationT err m a -> f (ValidationT err m b) #

sequenceA :: Applicative f => ValidationT err m (f a) -> f (ValidationT err m a) #

mapM :: Monad m => (a -> m b) -> ValidationT err m a -> m (ValidationT err m b) #

sequence :: Monad m => ValidationT err m (m a) -> m (ValidationT err m a) #

(Functor m, Monad m) => Alt (ValidationT err m) Source # 

Methods

(<!>) :: ValidationT err m a -> ValidationT err m a -> ValidationT err m a #

some :: Applicative (ValidationT err m) => ValidationT err m a -> ValidationT err m [a] #

many :: Applicative (ValidationT err m) => ValidationT err m a -> ValidationT err m [a] #

Apply m => Apply (ValidationT err m) Source # 

Methods

(<.>) :: ValidationT err m (a -> b) -> ValidationT err m a -> ValidationT err m b #

(.>) :: ValidationT err m a -> ValidationT err m b -> ValidationT err m b #

(<.) :: ValidationT err m a -> ValidationT err m b -> ValidationT err m a #

(Apply m, Monad m) => Bind (ValidationT err m) Source # 

Methods

(>>-) :: ValidationT err m a -> (a -> ValidationT err m b) -> ValidationT err m b #

join :: ValidationT err m (ValidationT err m a) -> ValidationT err m a #

data ValidationB m err a Source #

The bifunctor version of ValidationT

Constructors

ValidationB 

Fields

Instances

Functor m => Bifunctor (ValidationB m) Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> ValidationB m a c -> ValidationB m b d #

first :: (a -> b) -> ValidationB m a c -> ValidationB m b c #

second :: (b -> c) -> ValidationB m a b -> ValidationB m a c #

Traversable m => Bitraversable (ValidationB m) Source # 

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> ValidationB m a b -> f (ValidationB m c d) #

Foldable m => Bifoldable (ValidationB m) Source # 

Methods

bifold :: Monoid m => ValidationB m m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> ValidationB m a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> ValidationB m a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> ValidationB m a b -> c #

Functor f => Swapped (ValidationB f) Source # 

Methods

swapped :: (Profunctor p, Functor f) => p (ValidationB f b a) (f (ValidationB f d c)) -> p (ValidationB f a b) (f (ValidationB f c d)) #

(~) (* -> *) m Identity => Validate (ValidationB m) Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

Monad m => Monad (ValidationB m err) Source # 

Methods

(>>=) :: ValidationB m err a -> (a -> ValidationB m err b) -> ValidationB m err b #

(>>) :: ValidationB m err a -> ValidationB m err b -> ValidationB m err b #

return :: a -> ValidationB m err a #

fail :: String -> ValidationB m err a #

Functor m => Functor (ValidationB m err) Source # 

Methods

fmap :: (a -> b) -> ValidationB m err a -> ValidationB m err b #

(<$) :: a -> ValidationB m err b -> ValidationB m err a #

Applicative m => Applicative (ValidationB m err) Source # 

Methods

pure :: a -> ValidationB m err a #

(<*>) :: ValidationB m err (a -> b) -> ValidationB m err a -> ValidationB m err b #

(*>) :: ValidationB m err a -> ValidationB m err b -> ValidationB m err b #

(<*) :: ValidationB m err a -> ValidationB m err b -> ValidationB m err a #

Foldable m => Foldable (ValidationB m err) Source # 

Methods

fold :: Monoid m => ValidationB m err m -> m #

foldMap :: Monoid m => (a -> m) -> ValidationB m err a -> m #

foldr :: (a -> b -> b) -> b -> ValidationB m err a -> b #

foldr' :: (a -> b -> b) -> b -> ValidationB m err a -> b #

foldl :: (b -> a -> b) -> b -> ValidationB m err a -> b #

foldl' :: (b -> a -> b) -> b -> ValidationB m err a -> b #

foldr1 :: (a -> a -> a) -> ValidationB m err a -> a #

foldl1 :: (a -> a -> a) -> ValidationB m err a -> a #

toList :: ValidationB m err a -> [a] #

null :: ValidationB m err a -> Bool #

length :: ValidationB m err a -> Int #

elem :: Eq a => a -> ValidationB m err a -> Bool #

maximum :: Ord a => ValidationB m err a -> a #

minimum :: Ord a => ValidationB m err a -> a #

sum :: Num a => ValidationB m err a -> a #

product :: Num a => ValidationB m err a -> a #

Traversable m => Traversable (ValidationB m err) Source # 

Methods

traverse :: Applicative f => (a -> f b) -> ValidationB m err a -> f (ValidationB m err b) #

sequenceA :: Applicative f => ValidationB m err (f a) -> f (ValidationB m err a) #

mapM :: Monad m => (a -> m b) -> ValidationB m err a -> m (ValidationB m err b) #

sequence :: Monad m => ValidationB m err (m a) -> m (ValidationB m err a) #

(Functor m, Monad m) => Alt (ValidationB m err) Source # 

Methods

(<!>) :: ValidationB m err a -> ValidationB m err a -> ValidationB m err a #

some :: Applicative (ValidationB m err) => ValidationB m err a -> ValidationB m err [a] #

many :: Applicative (ValidationB m err) => ValidationB m err a -> ValidationB m err [a] #

Apply m => Apply (ValidationB m err) Source # 

Methods

(<.>) :: ValidationB m err (a -> b) -> ValidationB m err a -> ValidationB m err b #

(.>) :: ValidationB m err a -> ValidationB m err b -> ValidationB m err b #

(<.) :: ValidationB m err a -> ValidationB m err b -> ValidationB m err a #

(Apply m, Monad m) => Bind (ValidationB m err) Source # 

Methods

(>>-) :: ValidationB m err a -> (a -> ValidationB m err b) -> ValidationB m err b #

join :: ValidationB m err (ValidationB m err a) -> ValidationB m err a #

Prisms

_Failure :: Validate f => Prism (f e1 a) (f e2 a) e1 e2 Source #

_Success :: Validate f => Prism (f e a) (f e b) a b Source #

Isomorphisms

class Validate f where Source #

Methods

_Validation :: Iso (f e a) (f g b) (Validation e a) (Validation g b) Source #

_Validation' :: Iso (f e a) (f g b) (Validation' e a) (Validation' g b) Source #

_AccValidation :: Iso (f e a) (f g b) (AccValidation e a) (AccValidation g b) Source #

_Either :: Iso (f e a) (f g b) (Either e a) (Either g b) Source #

Instances

Validate Either Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (Either e a) (f (Either g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (Either e a) (f (Either g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (Either e a) (f (Either g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (Either e a) (f (Either g b)) Source #

Validate Validation Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (Validation e a) (f (Validation g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (Validation e a) (f (Validation g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (Validation e a) (f (Validation g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (Validation e a) (f (Validation g b)) Source #

Validate AccValidation Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (AccValidation e a) (f (AccValidation g b)) Source #

(~) (* -> *) m Identity => Validate (ValidationB m) Source # 

Methods

_Validation :: (Profunctor p, Functor f) => p (Validation e a) (f (Validation g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_Validation' :: (Profunctor p, Functor f) => p (Validation' e a) (f (Validation' g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_AccValidation :: (Profunctor p, Functor f) => p (AccValidation e a) (f (AccValidation g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #

_Either :: (Profunctor p, Functor f) => p (Either e a) (f (Either g b)) -> p (ValidationB m e a) (f (ValidationB m g b)) Source #