| License | BSD-style (see the file LICENSE) | 
|---|---|
| Maintainer | ocean0yohsuke@gmail.com | 
| Stability | experimental | 
| Portability | --- | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
DeepControl.Monad.Trans.State
Description
This module extended State Monad in mtl(monad-transformer-library).
- module Control.Monad.State
- newtype StateT2 s m1 m2 a = StateT2 {- runStateT2 :: s -> m1 (m2 (a, s))
 
- evalStateT2 :: (Monad m1, Monad2 m2) => StateT2 s m1 m2 a -> s -> m1 (m2 a)
- execStateT2 :: (Monad m1, Monad2 m2) => StateT2 s m1 m2 a -> s -> m1 (m2 s)
- mapStateT2 :: (m1 (m2 (a, s)) -> n1 (n2 (b, s))) -> StateT2 s m1 m2 a -> StateT2 s n1 n2 b
- withStateT2 :: (s -> s) -> StateT2 s m1 m2 a -> StateT2 s m1 m2 a
- newtype StateT3 s m1 m2 m3 a = StateT3 {- runStateT3 :: s -> m1 (m2 (m3 (a, s)))
 
- evalStateT3 :: (Monad m1, Monad2 m2, Monad3 m3) => StateT3 s m1 m2 m3 a -> s -> m1 (m2 (m3 a))
- execStateT3 :: (Monad m1, Monad2 m2, Monad3 m3) => StateT3 s m1 m2 m3 a -> s -> m1 (m2 (m3 s))
- mapStateT3 :: (m1 (m2 (m3 (a, s))) -> n1 (n2 (n3 (b, s)))) -> StateT3 s m1 m2 m3 a -> StateT3 s n1 n2 n3 b
- withStateT3 :: (s -> s) -> StateT3 s m1 m2 m3 a -> StateT3 s m1 m2 m3 a
Documentation
module Control.Monad.State
Level-2
newtype StateT2 s m1 m2 a Source
Constructors
| StateT2 | |
| Fields 
 | |
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 
 | |
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