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.State

Contents

Description

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

Synopsis

Documentation

Level-2

newtype StateT2 s m1 m2 a Source

Constructors

StateT2 

Fields

runStateT2 :: s -> m1 (m2 (a, s))
 

Instances

(Monad m1, Monad2 m2) => MonadState s (StateT2 s m1 m2) Source 
MonadTrans2 (StateT2 s) Source 
(Monad m1, Monad2 m2) => Monad (StateT2 s m1 m2) Source 
(Functor m1, Functor m2) => Functor (StateT2 s m1 m2) Source 
(Monad m1, Monad2 m2) => Applicative (StateT2 s m1 m2) Source 
(MonadIO m1, Monad m1, Monad2 m2) => MonadIO (StateT2 s m1 m2) Source 

evalStateT2 :: (Monad m1, Monad2 m2) => StateT2 s m1 m2 a -> s -> m1 (m2 a) Source

execStateT2 :: (Monad m1, Monad2 m2) => StateT2 s m1 m2 a -> s -> m1 (m2 s) Source

mapStateT2 :: (m1 (m2 (a, s)) -> n1 (n2 (b, s))) -> StateT2 s m1 m2 a -> StateT2 s n1 n2 b Source

withStateT2 :: (s -> s) -> StateT2 s m1 m2 a -> StateT2 s m1 m2 a Source

Level-3

newtype StateT3 s m1 m2 m3 a Source

Constructors

StateT3 

Fields

runStateT3 :: s -> m1 (m2 (m3 (a, s)))
 

Instances

(Monad m1, Monad2 m2, Monad3 m3) => MonadState s (StateT3 s m1 m2 m3) Source 
MonadTrans3 (StateT3 s) Source 
(Monad m1, Monad2 m2, Monad3 m3) => Monad (StateT3 s m1 m2 m3) Source 
(Functor m1, Functor m2, Functor m3) => Functor (StateT3 s m1 m2 m3) Source 
(Monad m1, Monad2 m2, Monad3 m3) => Applicative (StateT3 s m1 m2 m3) Source 
(MonadIO m1, Monad m1, Monad2 m2, Monad3 m3) => MonadIO (StateT3 s m1 m2 m3) Source 

evalStateT3 :: (Monad m1, Monad2 m2, Monad3 m3) => StateT3 s m1 m2 m3 a -> s -> m1 (m2 (m3 a)) Source

execStateT3 :: (Monad m1, Monad2 m2, Monad3 m3) => StateT3 s m1 m2 m3 a -> s -> m1 (m2 (m3 s)) Source

mapStateT3 :: (m1 (m2 (m3 (a, s))) -> n1 (n2 (n3 (b, s)))) -> StateT3 s m1 m2 m3 a -> StateT3 s n1 n2 n3 b Source

withStateT3 :: (s -> s) -> StateT3 s m1 m2 m3 a -> StateT3 s m1 m2 m3 a Source