The Writer monad
In MTL's Writer monad, the told value must have a |Monoid| type. Our writer has no such constraints. If we write a |Writer|-like interpreter to accumulate the told values in a monoid, it will have the |Monoid w| constraint then
Instances3MonadBaseControl, Handle, StM
(MonadBase m m, LiftedBase m r) => MonadBaseControl m (Eff (Writer w ': r))Defined in extensible-effects-5.0.0.1 · Control.Eff.Writer.LazyMonad m => Handle (Writer w) r a (b -> (w -> b -> b) -> m (a, b))Defined in extensible-effects-5.0.0.1 · Control.Eff.Writer.LazyGiven a value to write, and a callback (which includes empty and append), respond to requests.
type StM (Eff (Writer w ': r)) a = StM (Eff r) (a, [w])Defined in extensible-effects-5.0.0.1 · Control.Eff.Writer.Lazy