multistate-0.1.3.1: like mtl's ReaderT/StateT, but more than one contained value/type.

Safe HaskellNone
LanguageHaskell98

Control.Monad.MultiWriter

Description

TODO: haddock ..

Documentation

newtype MultiWriterT x m a

Constructors

MultiWriterT 

Fields

runMultiWriterTRaw :: StateT (HList x) m a
 

Instances

class (Monad m, Monoid a) => MonadMultiWriter a m where

Methods

mTell :: a -> m ()

Instances

(MonadTrans t, Monad (t m), MonadMultiWriter a m) => MonadMultiWriter a (t m) 
(Monad m, ContainsType a c, Monoid a) => MonadMultiWriter a (MultiWriterT c m) 

withMultiWriter :: Monad m => x -> MultiWriterT (Cons x xs) m a -> MultiWriterT xs m a

withMultiWriters :: Monad m => HList xs -> MultiWriterT (Append xs ys) m a -> MultiWriterT ys m a

runMultiWriterT :: (Monad m, Monoid (HList l)) => MultiWriterT l m a -> m (a, HList l)

execMultiWriterT :: (Monad m, Monoid (HList l)) => MultiWriterT l m a -> m (HList l)

mapMultiWriterT :: (m (a, HList w) -> m' (a', HList w)) -> MultiWriterT w m a -> MultiWriterT w m' a'

data Cons car cdr :: * -> * -> *

Instances

(Show a, Show (HList b)) => Show (HList (Cons a b)) 
(Monoid x, Monoid (HList xs)) => Monoid (HList (Cons x xs)) 
(Show car, Show cdr) => Show (Cons car cdr) 
Typeable (* -> * -> *) Cons 
type IsNull (Cons car cdr) = False 
type Head (Cons car cdr) = car 
type Tail (Cons car cdr) = cdr 
type Reverse' (Cons car cdr) a = Reverse' cdr (Cons car a) 
type Append (Cons car1 cdr2) l2 = Cons car1 (Append cdr2 l2) 

data Null :: *

Instances

Show Null 
Typeable * Null 
Show (HList Null) 
Monoid (HList Null) 
type IsNull Null = True 
type Reverse' Null a = a 
type Append Null l2 = l2