Copyright | (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001, (C) 2015 KONISHI Yohsuke, |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | ocean0yohsuke@gmail.com |
Stability | experimental |
Portability | --- |
Safe Haskell | Safe |
Language | Haskell2010 |
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
WriterT2 | |
|
(Monoid w, Monad m1, Monad2 m2) => MonadWriter w (WriterT2 w m1 m2) Source | |
Monoid w => MonadTransCover2 (WriterT2 w) Source | |
Monoid w => MonadTransFold2 (WriterT2 w) Source | |
Monoid w => MonadTrans2Down (WriterT2 w) 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 | |
type Trans2Down (WriterT2 w) = WriterT w 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
WriterT3 | |
|
(Monoid w, Monad m1, Monad2 m2, Monad3 m3) => MonadWriter w (WriterT3 w m1 m2 m3) Source | |
Monoid w => MonadTransCover3 (WriterT3 w) Source | |
Monoid w => MonadTransFold3 (WriterT3 w) Source | |
Monoid w => MonadTrans3Down (WriterT3 w) 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 | |
type Trans3Down (WriterT3 w) = WriterT2 w 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