| License | BSD-style (see the file LICENSE) | 
|---|---|
| Maintainer | ocean0yohsuke@gmail.com | 
| Stability | experimental | 
| Portability | --- | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
DeepControl.Monad.Trans.Writer
Description
This module extended Writer Monad in mtl(monad-transformer-library).
- module Control.Monad.Writer
- newtype WriterT2 w m1 m2 a = WriterT2 {- runWriterT2 :: m1 (m2 (a, w))
 
- execWriterT2 :: (Monad m1, Monad2 m2) => WriterT2 w m1 m2 a -> m1 (m2 w)
- mapWriterT2 :: (m1 (m2 (a, w)) -> n1 (n2 (b, w'))) -> WriterT2 w m1 m2 a -> WriterT2 w' n1 n2 b
- newtype WriterT3 w m1 m2 m3 a = WriterT3 {- runWriterT3 :: m1 (m2 (m3 (a, w)))
 
- execWriterT3 :: (Monad m1, Monad2 m2, Monad3 m3) => WriterT3 w m1 m2 m3 a -> m1 (m2 (m3 w))
- mapWriterT3 :: (m1 (m2 (m3 (a, w))) -> n1 (n2 (n3 (b, w')))) -> WriterT3 w m1 m2 m3 a -> WriterT3 w' n1 n2 n3 b
Documentation
module Control.Monad.Writer
Level-2
newtype WriterT2 w m1 m2 a Source
Constructors
| WriterT2 | |
| Fields 
 | |
Instances
| (Monoid w, Monad m1, Monad2 m2) => MonadWriter w (WriterT2 w m1 m2) Source | |
| Monoid w => MonadTrans2 (WriterT2 w) Source | |
| (Monoid w, Monad m1, Monad2 m2) => Monad (WriterT2 w m1 m2) Source | |
| (Monad m1, Monad2 m2) => Functor (WriterT2 w m1 m2) Source | |
| (Monoid w, Monad m1, Monad2 m2) => Applicative (WriterT2 w m1 m2) Source | |
| (Monoid w, MonadIO m1, Monad m1, Monad2 m2) => MonadIO (WriterT2 w m1 m2) Source | 
execWriterT2 :: (Monad m1, Monad2 m2) => WriterT2 w m1 m2 a -> m1 (m2 w) Source
mapWriterT2 :: (m1 (m2 (a, w)) -> n1 (n2 (b, w'))) -> WriterT2 w m1 m2 a -> WriterT2 w' n1 n2 b Source
Level-3
newtype WriterT3 w m1 m2 m3 a Source
Constructors
| WriterT3 | |
| Fields 
 | |
Instances
| (Monoid w, Monad m1, Monad2 m2, Monad3 m3) => MonadWriter w (WriterT3 w m1 m2 m3) Source | |
| Monoid w => MonadTrans3 (WriterT3 w) Source | |
| (Monoid w, Monad m1, Monad2 m2, Monad3 m3) => Monad (WriterT3 w m1 m2 m3) Source | |
| (Monad m1, Monad2 m2, Monad3 m3) => Functor (WriterT3 w m1 m2 m3) Source | |
| (Monoid w, Monad m1, Monad2 m2, Monad3 m3) => Applicative (WriterT3 w m1 m2 m3) Source | |
| (Monoid w, MonadIO m1, Monad m1, Monad2 m2, Monad3 m3) => MonadIO (WriterT3 w m1 m2 m3) Source | 
mapWriterT3 :: (m1 (m2 (m3 (a, w))) -> n1 (n2 (n3 (b, w')))) -> WriterT3 w m1 m2 m3 a -> WriterT3 w' n1 n2 n3 b Source