deepcontrol-0.3.0.0: Enable more deeper level style of programming than the usual Control.xxx modules express

LicenseBSD-style (see the file LICENSE)
Maintainerocean0yohsuke@gmail.com
Stabilityexperimental
Portability---
Safe HaskellSafe
LanguageHaskell2010

DeepControl.Monad.Trans.Writer

Contents

Description

This module extended Writer Monad in mtl(monad-transformer-library).

Synopsis

Documentation

Level-2

newtype WriterT2 w m1 m2 a Source

Constructors

WriterT2 

Fields

runWriterT2 :: m1 (m2 (a, w))
 

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

runWriterT3 :: m1 (m2 (m3 (a, w)))
 

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 

execWriterT3 :: (Monad m1, Monad2 m2, Monad3 m3) => WriterT3 w m1 m2 m3 a -> m1 (m2 (m3 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