| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
RIO.Writer
Description
Provides reexports of MonadWriter and related helpers.
Since: 0.1.4.0
Synopsis
- class (Monoid w, Monad m) => MonadWriter w (m :: Type -> Type) | m -> w where
- listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b)
- censor :: MonadWriter w m => (w -> w) -> m a -> m a
- type Writer w = WriterT w Identity
- runWriter :: Writer w a -> (a, w)
- execWriter :: Writer w a -> w
- mapWriter :: ((a, w) -> (b, w')) -> Writer w a -> Writer w' b
- newtype WriterT w (m :: Type -> Type) a = WriterT {
- runWriterT :: m (a, w)
- execWriterT :: Monad m => WriterT w m a -> m w
- mapWriterT :: (m (a, w) -> n (b, w')) -> WriterT w m a -> WriterT w' n b
Documentation
class (Monoid w, Monad m) => MonadWriter w (m :: Type -> Type) | m -> w where #
Methods
embeds a simple writer action.writer (a,w)
is an action that produces the output tell ww.
is an action that executes the action listen mm and adds
its output to the value of the computation.
pass :: m (a, w -> w) -> m a #
is an action that executes the action pass mm, which
returns a value and a function, and returns the value, applying
the function to the output.
Instances
| MonadWriter w m => MonadWriter w (CatchT m) | |
| (Monoid w, HasWriteRef w env) => MonadWriter w (RIO env) # | |
| MonadWriter w m => MonadWriter w (MaybeT m) | |
| Monoid w => MonadWriter w ((,) w) | Since: mtl-2.2.2 |
| (Monoid w', MonadWriter w m) => MonadWriter w (AccumT w' m) | There are two valid instances for
This instance chooses (1), reflecting that the intent
of Since: mtl-2.3 |
| MonadWriter w m => MonadWriter w (ExceptT e m) | Since: mtl-2.2 |
| MonadWriter w m => MonadWriter w (IdentityT m) | |
| MonadWriter w m => MonadWriter w (ReaderT r m) | |
| MonadWriter w m => MonadWriter w (StateT s m) | |
| MonadWriter w m => MonadWriter w (StateT s m) | |
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | Since: mtl-2.3 |
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | |
| (Monoid w, Monad m) => MonadWriter w (RWST r w s m) | Since: mtl-2.3 |
| (Monoid w, Monad m) => MonadWriter w (RWST r w s m) | |
| (Monoid w, Monad m) => MonadWriter w (RWST r w s m) | |
listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b) #
censor :: MonadWriter w m => (w -> w) -> m a -> m a #
runWriter :: Writer w a -> (a, w) #
Unwrap a writer computation as a (result, output) pair.
(The inverse of writer.)
execWriter :: Writer w a -> w #
Extract the output from a writer computation.
execWriterm =snd(runWriterm)
newtype WriterT w (m :: Type -> Type) a #
A writer monad parameterized by:
w- the output to accumulate.m- The inner monad.
The return function produces the output mempty, while m
combines the outputs of the subcomputations using >>= kmappend (also
known as <>):
Constructors
| WriterT | |
Fields
| |
Instances
| (MonadAccum w' m, Monoid w) => MonadAccum w' (WriterT w m) | Since: mtl-2.3 | ||||
| (Monoid w, MonadError e m) => MonadError e (WriterT w m) | |||||
Defined in Control.Monad.Error.Class Methods throwError :: e -> WriterT w m a # catchError :: WriterT w m a -> (e -> WriterT w m a) -> WriterT w m a # | |||||
| (Monoid w, MonadReader r m) => MonadReader r (WriterT w m) | |||||
| (MonadSelect w' m, Monoid w) => MonadSelect w' (WriterT w m) | 'Readerizes' the writer: the 'ranking' function can see the value
that's been accumulated (of type Since: mtl-2.3 | ||||
Defined in Control.Monad.Select | |||||
| (Monoid w, MonadState s m) => MonadState s (WriterT w m) | |||||
| (Monoid w, Monad m) => MonadWriter w (WriterT w m) | |||||
| Monoid w => MonadTrans (WriterT w) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| (Monoid w, MonadIO m) => MonadIO (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| (Monoid w, MonadZip m) => MonadZip (WriterT w m) | |||||
| (Eq w, Eq1 m) => Eq1 (WriterT w m) | |||||
| (Ord w, Ord1 m) => Ord1 (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| (Read w, Read1 m) => Read1 (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy Methods liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (WriterT w m a) # liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [WriterT w m a] # liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (WriterT w m a) # liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [WriterT w m a] # | |||||
| (Show w, Show1 m) => Show1 (WriterT w m) | |||||
| Contravariant m => Contravariant (WriterT w m) | |||||
| (MonadCatch m, Monoid w) => MonadCatch (WriterT w m) | |||||
Defined in Control.Monad.Catch | |||||
| (MonadMask m, Monoid w) => MonadMask (WriterT w m) | |||||
Defined in Control.Monad.Catch Methods mask :: HasCallStack => ((forall a. WriterT w m a -> WriterT w m a) -> WriterT w m b) -> WriterT w m b # uninterruptibleMask :: HasCallStack => ((forall a. WriterT w m a -> WriterT w m a) -> WriterT w m b) -> WriterT w m b # generalBracket :: HasCallStack => WriterT w m a -> (a -> ExitCase b -> WriterT w m c) -> (a -> WriterT w m b) -> WriterT w m (b, c) # | |||||
| (MonadThrow m, Monoid w) => MonadThrow (WriterT w m) | |||||
Defined in Control.Monad.Catch Methods throwM :: (HasCallStack, Exception e) => e -> WriterT w m a # | |||||
| (Monoid w, Alternative m) => Alternative (WriterT w m) | |||||
| (Monoid w, Applicative m) => Applicative (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| Functor m => Functor (WriterT w m) | |||||
| (Monoid w, Monad m) => Monad (WriterT w m) | |||||
| (Monoid w, MonadPlus m) => MonadPlus (WriterT w m) | |||||
| (Monoid w, MonadFail m) => MonadFail (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| (Monoid w, MonadFix m) => MonadFix (WriterT w m) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| Foldable f => Foldable (WriterT w f) | |||||
Defined in Control.Monad.Trans.Writer.Lazy Methods fold :: Monoid m => WriterT w f m -> m # foldMap :: Monoid m => (a -> m) -> WriterT w f a -> m # foldMap' :: Monoid m => (a -> m) -> WriterT w f a -> m # foldr :: (a -> b -> b) -> b -> WriterT w f a -> b # foldr' :: (a -> b -> b) -> b -> WriterT w f a -> b # foldl :: (b -> a -> b) -> b -> WriterT w f a -> b # foldl' :: (b -> a -> b) -> b -> WriterT w f a -> b # foldr1 :: (a -> a -> a) -> WriterT w f a -> a # foldl1 :: (a -> a -> a) -> WriterT w f a -> a # toList :: WriterT w f a -> [a] # null :: WriterT w f a -> Bool # length :: WriterT w f a -> Int # elem :: Eq a => a -> WriterT w f a -> Bool # maximum :: Ord a => WriterT w f a -> a # minimum :: Ord a => WriterT w f a -> a # | |||||
| Traversable f => Traversable (WriterT w f) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
| (Monoid w, MonadCont m) => MonadCont (WriterT w m) | |||||
| (Monoid w, PrimMonad m) => PrimMonad (WriterT w m) | |||||
| (Monoid w, Zoom m n s t) => Zoom (WriterT w m) (WriterT w n) s t | |||||
| Generic (WriterT w m a) | |||||
Defined in Control.Monad.Trans.Writer.Lazy Associated Types
| |||||
| (Read w, Read1 m, Read a) => Read (WriterT w m a) | |||||
| (Show w, Show1 m, Show a) => Show (WriterT w m a) | |||||
| (Eq w, Eq1 m, Eq a) => Eq (WriterT w m a) | |||||
| (Ord w, Ord1 m, Ord a) => Ord (WriterT w m a) | |||||
Defined in Control.Monad.Trans.Writer.Lazy Methods compare :: WriterT w m a -> WriterT w m a -> Ordering # (<) :: WriterT w m a -> WriterT w m a -> Bool # (<=) :: WriterT w m a -> WriterT w m a -> Bool # (>) :: WriterT w m a -> WriterT w m a -> Bool # (>=) :: WriterT w m a -> WriterT w m a -> Bool # | |||||
| type Zoomed (WriterT w m) | |||||
Defined in Lens.Micro.Mtl.Internal | |||||
| type PrimState (WriterT w m) | |||||
Defined in Control.Monad.Primitive | |||||
| type Rep (WriterT w m a) | |||||
Defined in Control.Monad.Trans.Writer.Lazy | |||||
execWriterT :: Monad m => WriterT w m a -> m w #
Extract the output from a writer computation.
execWriterTm =liftMsnd(runWriterTm)
mapWriterT :: (m (a, w) -> n (b, w')) -> WriterT w m a -> WriterT w' n b #
Map both the return value and output of a computation using the given function.
runWriterT(mapWriterTf m) = f (runWriterTm)