A monad containing an environment of type r, output of type w
and an updatable state of type s.
Moduletransformers-0.6.1.1Haskell2010
Control.Monad.Trans.RWS.Lazy
A monad transformer that combines ReaderT, WriterT and StateT. This version is lazy; for a constant-space version with almost the same interface, see Control.Monad.Trans.RWS.CPS.
- 2 types
- 28 values
- Packagetransformers-0.6.1.1
- Exports30
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceLazy.hs
The RWS monad
7 declarationsConstruct an RWS computation from a function. (The inverse of runRWS.)
Unwrap an RWS computation as a function. (The inverse of rws.)
evalRWS :: RWS r w s aRWS computation to execute
-> rinitial environment
-> sinitial value
-> (a, w)final value and output
Evaluate a computation with the given initial state and environment, returning the final value and output, discarding the final state.
execRWS :: RWS r w s aRWS computation to execute
-> rinitial environment
-> sinitial value
-> (s, w)final state and output
Evaluate a computation with the given initial state and environment, returning the final state and output, discarding the final value.
The RWST monad transformer
5 declarationsA monad transformer adding reading an environment of type r,
collecting an output of type w and updating a state of type s
to an inner monad m.
Instances12MonadTrans, Monad, Functor, MonadFix, MonadFail, Applicative, …
Monoid w => MonadTrans (RWST r w s)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Monad m) => Monad (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.LazyFunctor m => Functor (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadFix m) => MonadFix (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadFail m) => MonadFail (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, Monad m) => Applicative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy(Monoid w, MonadIO m) => MonadIO (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.LazyContravariant m => Contravariant (RWST r w s m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.LazyGeneric (RWST r w s m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazytype Rep (RWST r w s m a) = D1 ('MetaDataDefined in transformers-0.6.1.1 · Control.Monad.Trans.RWS.Lazy"RWST"
"Control.Monad.Trans.RWS.Lazy"
"transformers-0.6.1.1-a11a"
'True) (C1 ('MetaCons"RWST"
'PrefixI 'True) (S1 ('MetaSel ('Just"runRWST"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (r -> s -> m (a, s, w)))))
evalRWST Evaluate a computation with the given initial state and environment, returning the final value and output, discarding the final state.
execRWST Evaluate a computation with the given initial state and environment, returning the final state and output, discarding the final value.
Reader operations
4 declarationsConstructor for computations in the reader monad (equivalent to asks).
Fetch the value of the environment.
Writer operations
6 declarationsConstruct a writer computation from a (result, output) pair.
tell w is an action that produces the output w.
State operations
5 declarationsConstruct a state monad computation from a state transformer function.
Fetch the current value of the state within the monad.
put s sets the state within the monad to s.
Lifting other operations
3 declarationsUniform lifting of a callCC operation to the new monad.
This version rolls back to the original state on entering the
continuation.
In-situ lifting of a callCC operation to the new monad.
This version uses the current state on entering the continuation.
Lift a catchE operation to the new monad.