HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulevalidation-1.3.3Haskell2010

Data.Validation.ValidationMonad

A monad transformer wrapping m (Validation err a) with short-circuiting Applicative and Monad instances, unlike Validation which accumulates errors.

  • 2 types
  • 4 classes
  • 2 values
  • Packagevalidation-1.3.3
  • Exports8
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceValidationMonad.hs
newtypenewtype ValidationMonadT err (m :: Type -> Type) a
#

A monad transformer wrapping m (Validation err a).

Example1 expression
ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 1))
Example1 expression
ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Failure "err"))

Constructors

Instances48MonadRWS, MonadError, MonadReader, MonadState, MonadWriter, MonadTrans, …
  • MonadRWS r w s m => MonadRWS r w s (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • Monad m => MonadError err (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    throwError "err" :: ValidationMonadT String Identity IntValidationMonadT (Identity (Failure "err"))
    Example1 expression
    catchError (throwError "err" :: ValidationMonadT String Identity Int) (\e -> pure (length e))ValidationMonadT (Identity (Success 3))
  • MonadReader r m => MonadReader r (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • MonadState s m => MonadState s (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • MonadWriter w m => MonadWriter w (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • MonadTrans (ValidationMonadT err)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    lift (Identity 1) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 1))
  • BindTrans (ValidationMonadT err)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • Monad m => Monad (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    Short-circuiting on the first Failure.

    Example1 expression
    ValidationMonadT (Identity (Success 2)) >>= (\x -> ValidationMonadT (Identity (Success (x + 1)))) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 3))
    Example1 expression
    (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int) >>= (\x -> ValidationMonadT (Identity (Success (x + 1))))ValidationMonadT (Identity (Failure "err"))
  • Functor m => Functor (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    fmap (+1) (ValidationMonadT (Identity (Success 2)) :: ValidationMonadT String Identity Int)ValidationMonadT (Identity (Success 3))
    Example1 expression
    fmap (+1) (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int)ValidationMonadT (Identity (Failure "err"))
  • MonadFail m => MonadFail (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • Monad m => Applicative (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    Short-circuiting: unlike Validation, does not accumulate errors.

    Example1 expression
    pure 1 :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 1))
    Example1 expression
    (ValidationMonadT (Identity (Failure "e1")) :: ValidationMonadT String Identity (Int -> Int)) <*> (ValidationMonadT (Identity (Failure "e2")) :: ValidationMonadT String Identity Int)ValidationMonadT (Identity (Failure "e1"))
  • Foldable m => Foldable (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    foldr (:) [] (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)[1]
    Example1 expression
    foldr (:) [] (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int)[]
  • Traversable m => Traversable (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    traverse (\x -> [x, x+1]) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)[ValidationMonadT (Identity (Success 1)),ValidationMonadT (Identity (Success 2))]
    Example1 expression
    traverse (\x -> [x, x+1]) (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int)[ValidationMonadT (Identity (Failure "err"))]
  • (Monad m, Monoid err) => Alternative (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • (Monad m, Monoid err) => MonadPlus (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • MonadIO m => MonadIO (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • (Eq1 m, Eq err) => Eq1 (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    liftEq (==) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int) (ValidationMonadT (Identity (Success 1)))True
    Example1 expression
    liftEq (==) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int) (ValidationMonadT (Identity (Success 2)))False
  • (Ord1 m, Ord err) => Ord1 (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    liftCompare compare (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int) (ValidationMonadT (Identity (Success 2)))LT
  • (Show1 m, Show err) => Show1 (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • MonadCont m => MonadCont (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • (Monad m, Semigroup err) => Alt (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    First Success wins; two Failures accumulate errors.

    Example1 expression
    (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT [String] Identity Int) <!> ValidationMonadT (Identity (Success 2))ValidationMonadT (Identity (Success 1))
    Example1 expression
    (ValidationMonadT (Identity (Failure ["e1"])) :: ValidationMonadT [String] Identity Int) <!> ValidationMonadT (Identity (Success 2))ValidationMonadT (Identity (Success 2))
    Example1 expression
    (ValidationMonadT (Identity (Failure ["e1"])) :: ValidationMonadT [String] Identity Int) <!> ValidationMonadT (Identity (Failure ["e2"]))ValidationMonadT (Identity (Failure ["e1","e2"]))
  • Monad m => Apply (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    Short-circuiting: stops at the first Failure.

    Example1 expression
    (ValidationMonadT (Identity (Success (+1))) :: ValidationMonadT String Identity (Int -> Int)) <.> ValidationMonadT (Identity (Success 2))ValidationMonadT (Identity (Success 3))
    Example1 expression
    (ValidationMonadT (Identity (Failure "e1")) :: ValidationMonadT String Identity (Int -> Int)) <.> ValidationMonadT (Identity (Success 2))ValidationMonadT (Identity (Failure "e1"))
  • Monad m => Bind (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • Functor m => Extend (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    extended (\_ -> 42) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 42))
    Example1 expression
    extended (\_ -> 42) (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Failure "err"))
  • (Monad m, Monoid err) => Plus (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    zero :: ValidationMonadT [String] Identity IntValidationMonadT (Identity (Failure []))
  • Monad m => Selective (ValidationMonadT err m)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • AsValidation (ValidationMonad err a) err aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens((^?))(ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int) ^? _ValidationJust (Success 1)
  • GetValidation (ValidationMonad err a) err aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view)view getValidation (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)Success 1
  • HasValidation (ValidationMonad err a) err aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view)view validation (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)Success 1
  • Functor f => Sieve (ValidatorMonadProfunctorT err f) (ValidationMonadT err f)Defined in validation-1.3.3 · Data.Validation.Validator
    Example4 expressions
    import Data.Profunctor.Sieve(Sieve(sieve))let v = ValidatorMonadProfunctorT (\x -> ValidationMonadT (Identity (Success (x + 1)))) :: ValidatorMonadProfunctorT [String] Identity Int Intlet ValidationMonadT (Identity r) = sieve v 3rSuccess 4
  • Injection1 (ValidationMonad err a) (ValidationMonad err' a) err err'Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    The first constructor, Failure, of the Validation inside Identity.

    Example2 expressions
    import Control.Lens((^?), (#))(ValidationMonadT (Identity (Failure "err")) :: ValidationMonad String Int) ^? _I1Just "err"
    Example1 expression
    (ValidationMonadT (Identity (Success 1)) :: ValidationMonad String Int) ^? _I1Nothing
    Example1 expression
    _I1 # "err" :: ValidationMonad String IntValidationMonadT (Identity (Failure "err"))
  • Injection2 (ValidationMonad err a) (ValidationMonad err a') a a'Defined in validation-1.3.3 · Data.Validation.ValidationMonad

    The second constructor, Success, of the Validation inside Identity.

    Example2 expressions
    import Control.Lens((^?), (#))(ValidationMonadT (Identity (Success 1)) :: ValidationMonad String Int) ^? _I2Just 1
    Example1 expression
    (ValidationMonadT (Identity (Failure "err")) :: ValidationMonad String Int) ^? _I2Nothing
    Example1 expression
    _I2 # 1 :: ValidationMonad String IntValidationMonadT (Identity (Success 1))
  • Eq (m (Validation err a)) => Eq (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    ValidationMonadT (Identity (Success 1)) == (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)True
    Example1 expression
    ValidationMonadT (Identity (Success 1)) == (ValidationMonadT (Identity (Failure "err")) :: ValidationMonadT String Identity Int)False
  • Ord (m (Validation err a)) => Ord (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    compare (ValidationMonadT (Identity (Failure "a"))) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)LT
  • Show (m (Validation err a)) => Show (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    show (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)"ValidationMonadT (Identity (Success 1))"
  • Generic (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • (Applicative m, Semigroup e) => Semigroup (ValidationMonadT e m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    (ValidationMonadT (Identity (Failure ["e1"])) :: ValidationMonadT [String] Identity Int) <> ValidationMonadT (Identity (Failure ["e2"]))ValidationMonadT (Identity (Failure ["e1","e2"]))
    Example1 expression
    (ValidationMonadT (Identity (Failure ["e1"])) :: ValidationMonadT [String] Identity Int) <> ValidationMonadT (Identity (Success 2))ValidationMonadT (Identity (Success 2))
  • (Applicative m, Monoid e) => Monoid (ValidationMonadT e m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    mempty :: ValidationMonadT [String] Identity IntValidationMonadT (Identity (Failure []))
  • NFData (m (Validation err a)) => NFData (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example1 expression
    rnf (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)()
  • Wrapped (ValidationMonadT err m a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view, _Wrapped')view _Wrapped' (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)Identity (Success 1)
  • Applicative m => ReviewValidation (ValidationMonadT err m a) err aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(review)review reviewValidation (Success 1 :: Validation String Int) :: ValidationMonadT String [] IntValidationMonadT [Success 1]
  • AsValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
  • GetValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
  • HasValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
  • ReviewValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
  • Rewrapped (ValidationMonadT err m a) (ValidationMonadT err' m' b)Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • type Rep (ValidationMonadT err m a) = D1 ('MetaData "ValidationMonadT" "Data.Validation.ValidationMonad" "validation-1.3.3-30svjXBZxFa33c5ZrZGHG7" 'True) (C1 ('MetaCons "ValidationMonadT" 'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (Validation err a)))))Defined in validation-1.3.3 · Data.Validation.ValidationMonad
  • type Unwrapped (ValidationMonadT err m a) = m (Validation err a)Defined in validation-1.3.3 · Data.Validation.ValidationMonad

Isomorphisms

1 declaration
valuevalidationMonad
  1. :: (Profunctor p, Functor f)
  2. => p (ValidationMonad err a) (f (ValidationMonad err' a'))
  3. -> p (Validation err a) (f (Validation err' a'))
#

Isomorphism between Validation err a and ValidationMonadT err Identity a.

Example2 expressions
import Control.Lens(view, from)view validationMonad (Success 1 :: Validation String Int)ValidationMonadT (Identity (Success 1))
Example1 expression
view (from validationMonad) (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)Success 1

Optics

0 declarations

Classy lenses

classclass GetValidationMonadT s err (m :: Type -> Type) a | s -> err m a where
#

Class for types that have a Getter to a ValidationMonadT.

Example2 expressions
import Control.Lens(view)view getValidationMonadT (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)ValidationMonadT (Identity (Success 1))
Instances3GetValidationMonadT
  • GetValidationMonadT (Either err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view)view getValidationMonadT (Left "err" :: Either String Int)ValidationMonadT (Identity (Failure "err"))
    Example1 expression
    view getValidationMonadT (Right 1 :: Either String Int)ValidationMonadT (Identity (Success 1))
  • GetValidationMonadT (Validation err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view)view getValidationMonadT (Success 1 :: Validation String Int)ValidationMonadT (Identity (Success 1))
  • GetValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
classclass GetValidationMonadT s err m a => HasValidationMonadT s err (m :: Type -> Type) a | s -> err m a where
#

Class for types that have a Lens' to a ValidationMonadT.

Example2 expressions
import Control.Lens(view)view validationMonadT (ValidationMonadT (Identity (Success 1)) :: ValidationMonadT String Identity Int)ValidationMonadT (Identity (Success 1))
Instances3HasValidationMonadT
  • HasValidationMonadT (Either err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view, set)view validationMonadT (Left "err" :: Either String Int)ValidationMonadT (Identity (Failure "err"))
    Example1 expression
    set validationMonadT (ValidationMonadT (Identity (Success 2))) (Left "err" :: Either String Int)Right 2
  • HasValidationMonadT (Validation err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(view)view validationMonadT (Success 1 :: Validation String Int)ValidationMonadT (Identity (Success 1))
  • HasValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad

Classy prisms

classclass ReviewValidationMonadT s err (m :: Type -> Type) a | s -> err m a where
#

Class for types that have a Review to a ValidationMonadT.

Example2 expressions
import Control.Lens(review)review reviewValidationMonadT (ValidationMonadT (Identity (Success 1))) :: ValidationMonadT String Identity IntValidationMonadT (Identity (Success 1))
Instances3ReviewValidationMonadT
  • ReviewValidationMonadT (Either err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(review)review reviewValidationMonadT (ValidationMonadT (Identity (Success 1))) :: Either String IntRight 1
    Example1 expression
    review reviewValidationMonadT (ValidationMonadT (Identity (Failure "err"))) :: Either String IntLeft "err"
  • ReviewValidationMonadT (Validation err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens(review)review reviewValidationMonadT (ValidationMonadT (Identity (Success 1))) :: Validation String IntSuccess 1
  • ReviewValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
classclass ReviewValidationMonadT s err m a => AsValidationMonadT s err (m :: Type -> Type) a | s -> err m a where
#

Class for types that have a Prism' to a ValidationMonadT.

Instances3AsValidationMonadT
  • AsValidationMonadT (Either err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens((^?))(Left "err" :: Either String Int) ^? _ValidationMonadTJust (ValidationMonadT (Identity (Failure "err")))
    Example1 expression
    (Right 1 :: Either String Int) ^? _ValidationMonadTJust (ValidationMonadT (Identity (Success 1)))
  • AsValidationMonadT (Validation err a) err Identity aDefined in validation-1.3.3 · Data.Validation.ValidationMonad
    Example2 expressions
    import Control.Lens((^?))(Success 1 :: Validation String Int) ^? _ValidationMonadTJust (ValidationMonadT (Identity (Success 1)))
  • AsValidationMonadT (ValidationMonadT err m a) err m aDefined in validation-1.3.3 · Data.Validation.ValidationMonad