Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
This module defines the Validation
data type.
Most functionality is the same as in the validation library, but the module doesn't provide certain typeclass instances that require a dependency on the lens library.
Synopsis
- data Validation err a
- toEither :: Validation err a -> Either err a
- fromEither :: Either err a -> Validation err a
Documentation
data Validation err a Source #
A Validation
is very similar to Either
in that it contains a value of type e or a.
In contrast to Either however, Validation accumulates all errors it comes
across in it's Applicative
instance.
A complete example where Validation is used can be found here.
Instances
Bitraversable Validation Source # | |
Defined in Data.Validation bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Validation a b -> f (Validation c d) # | |
Bifoldable Validation Source # | |
Defined in Data.Validation 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 # | |
Bifunctor Validation Source # | |
Defined in Data.Validation 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 # | |
Functor (Validation err) Source # | |
Defined in Data.Validation fmap :: (a -> b) -> Validation err a -> Validation err b # (<$) :: a -> Validation err b -> Validation err a # | |
Semigroup err => Applicative (Validation err) Source # | |
Defined in Data.Validation pure :: a -> Validation err a # (<*>) :: Validation err (a -> b) -> Validation err a -> Validation err b # liftA2 :: (a -> b -> c) -> Validation err a -> Validation err b -> Validation err c # (*>) :: Validation err a -> Validation err b -> Validation err b # (<*) :: Validation err a -> Validation err b -> Validation err a # | |
Foldable (Validation err) Source # | |
Defined in Data.Validation 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 # | |
Defined in Data.Validation 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) # | |
(Eq err, Eq a) => Eq (Validation err a) Source # | |
Defined in Data.Validation (==) :: Validation err a -> Validation err a -> Bool # (/=) :: Validation err a -> Validation err a -> Bool # | |
(Ord err, Ord a) => Ord (Validation err a) Source # | |
Defined in Data.Validation 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 err, Show a) => Show (Validation err a) Source # | |
Defined in Data.Validation showsPrec :: Int -> Validation err a -> ShowS # show :: Validation err a -> String # showList :: [Validation err a] -> ShowS # |
toEither :: Validation err a -> Either err a Source #
Conversion function from Validation
to Either
.
>>>
toEither (Failure 1)
Left 1>>>
toEither (Success True)
Right True
fromEither :: Either err a -> Validation err a Source #
Conversion function from Either
to Validation
.
>>>
fromEither (Left 1)
Failure 1>>>
fromEither (Right True)
Success True