Modulererebase-1.21.2Haskell2010
Control.Monad.Trans.Writer
- 2 types
- 13 values
- Packagererebase-1.21.2
- Exports15
- LanguageHaskell2010
- LicenceMIT
- SourceLazy.hs
Lift a callCC operation to the new monad.
censor f m is an action that executes the action m and
applies the function f to its output, leaving the return value
unchanged.
censor f m = pass (liftM (\ x -> (x,f)) m)runWriterT (censor f m) = liftM (\ (a, w) -> (a, f w)) (runWriterT m)
listens f m is an action that executes the action m and adds
the result of applying f to the output to the value of the computation.
listens f m = liftM (id *** f) (listen m)runWriterT (listens f m) = liftM (\ (a, w) -> ((a, f w), w)) (runWriterT m)
Extract the output from a writer computation.
execWriter m = snd (runWriter m)
Extract the output from a writer computation.
execWriterT m = liftM snd (runWriterT m)
Map both the return value and output of a computation using the given function.
runWriterT (mapWriterT f m) = f (runWriterT m)
Unwrap a writer computation as a (result, output) pair. (The inverse of writer.)
listen m is an action that executes the action m and adds its
output to the value of the computation.
runWriterT (listen m) = liftM (\ (a, w) -> ((a, w), w)) (runWriterT m)
pass m is an action that executes the action m, which returns
a value and a function, and returns the value, applying the function
to the output.
runWriterT (pass m) = liftM (\ ((a, f), w) -> (a, f w)) (runWriterT m)
tell w is an action that produces the output w.
Construct a writer computation from a (result, output) pair. (The inverse of runWriter.)
A writer monad parameterized by:
w- the output to accumulate.m- The inner monad.
The return function produces the output mempty, while m >>= k
combines the outputs of the subcomputations using mappend (also
known as <>):
Constructors
WriterTrunWriterT :: m (a, w)
Instances52MonadAccum, MonadError, MonadReader, MonadState, MonadWriter, MonadSelect, …
(MonadAccum w' m, Monoid w) => MonadAccum w' (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Accum(Monoid w, MonadError e m) => MonadError e (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Error.Class(Monoid w, MonadReader r m) => MonadReader r (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Reader.Class(Monoid w, MonadState s m) => MonadState s (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.State.Class(Monoid w, Monad m) => MonadWriter w (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Writer.Class(MonadSelect w' m, Monoid w) => MonadSelect w' (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Select'Readerizes' the writer: the 'ranking' function can see the value that's been accumulated (of type
w), but can't add anything to the log. Effectively, can be thought of as 'extending' the 'ranking' by all values ofw, but whichwgets given to any rank calls is predetermined by the 'outer writer' (and cannot change).(Monoid w, MonadBase b m) => MonadBase b (WriterT w m)Defined in transformers-base-0.4.6 · Control.Monad.Base(Functor f, MonadFree f m, Monoid w) => MonadFree f (WriterT w m)Defined in free-5.2 · Control.Monad.Free.ClassMonoid w => MonadTrans (WriterT w)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyMonoid w => BindTrans (WriterT w)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.Trans(Monoid w, Monad m) => Monad (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyFunctor m => Functor (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadFix m) => MonadFix (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadFail m) => MonadFail (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, Applicative m) => Applicative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyFoldable f => Foldable (WriterT w f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyTraversable f => Traversable (WriterT w f)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, Alternative m) => Alternative (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadPlus m) => MonadPlus (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadIO m) => MonadIO (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadZip m) => MonadZip (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Eq w, Eq1 m) => Eq1 (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Ord w, Ord1 m) => Ord1 (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Read w, Read1 m) => Read1 (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Show w, Show1 m) => Show1 (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyContravariant m => Contravariant (WriterT w m)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Monoid w, MonadCont m) => MonadCont (WriterT w m)Defined in mtl-2.3.1 · Control.Monad.Cont.Class(MonadCatch m, Monoid w) => MonadCatch (WriterT w m)Defined in exceptions-0.10.9 · Control.Monad.Catch(MonadMask m, Monoid w) => MonadMask (WriterT w m)Defined in exceptions-0.10.9 · Control.Monad.Catch(MonadThrow m, Monoid w) => MonadThrow (WriterT w m)Defined in exceptions-0.10.9 · Control.Monad.Catch(Monoid w, PrimMonad m) => PrimMonad (WriterT w m)Defined in primitive-0.9.1.0 · Control.Monad.PrimitiveDecidable m => Decidable (WriterT w m)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleDivisible m => Divisible (WriterT w m)Defined in contravariant-1.5.5 · Data.Functor.Contravariant.DivisibleAlt f => Alt (WriterT w f)Defined in semigroupoids-6.0.1 · Data.Functor.Alt(Apply m, Semigroup w) => Apply (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassA
WriterT w mis not Applicative unless itswis a Monoid, but it is an instance of Apply(Bind m, Semigroup w) => Bind (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Bind.ClassConclude m => Conclude (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.ConcludeDecide m => Decide (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DecideDivise m => Divise (WriterT w m)Defined in semigroupoids-6.0.1 · Data.Functor.Contravariant.DivisePlus f => Plus (WriterT w f)Defined in semigroupoids-6.0.1 · Data.Functor.PlusInvariant m => Invariant (WriterT w m)Defined in invariant-0.6.4 · Data.Functor.Invariantfrom the
transformerspackage(Monoid w, Selective f) => Selective (WriterT w f)Defined in selective-0.7.0.1 · Control.SelectiveCopointed m => Copointed (WriterT w m)Defined in pointed-5.0.4 · Data.Copointed(Default w, Pointed m) => Pointed (WriterT w m)Defined in pointed-5.0.4 · Data.PointedAdjunction m w => Adjunction (WriterT s m) (TracedT s w)Defined in adjunctions-4.4.3 · Data.Functor.Adjunction(Eq w, Eq1 m, Eq a) => Eq (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Read w, Read1 m, Read a) => Read (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Show w, Show1 m, Show a) => Show (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.LazyGeneric (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazytype Rep (WriterT w m a) = D1 ('MetaDataDefined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy"WriterT"
"Control.Monad.Trans.Writer.Lazy"
"transformers-0.6.1.1-a11a"
'True) (C1 ('MetaCons"WriterT"
'PrefixI 'True) (S1 ('MetaSel ('Just"runWriterT"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (m (a, w)))))type PrimState (WriterT w m) = PrimState mDefined in primitive-0.9.1.0 · Control.Monad.Primitive
Lift a catchE operation to the new monad.