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 State Monad of 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
- liftCatch2 :: Catch2 e m1 m2 (a, s) -> Catch e (StateT2 s m1 m2) a
- liftListen2 :: (Monad m1, Monad2 m2) => Listen2 w m1 m2 (a, s) -> Listen w (StateT2 s m1 m2) a
- liftPass2 :: (Monad m1, Monad2 m2) => Pass2 w m1 m2 (a, s) -> Pass w (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
- liftCatch3 :: Catch3 e m1 m2 m3 (a, s) -> Catch e (StateT3 s m1 m2 m3) a
- liftListen3 :: (Monad m1, Monad2 m2, Monad3 m3) => Listen3 w m1 m2 m3 (a, s) -> Listen w (StateT3 s m1 m2 m3) a
- liftPass3 :: (Monad m1, Monad2 m2, Monad3 m3) => Pass3 w m1 m2 m3 (a, s) -> Pass w (StateT3 s m1 m2 m3) a
Documentation
module Control.Monad.State
Level-2
newtype StateT2 s m1 m2 a Source
StateT2 | |
|
(Monad m1, Monad2 m2) => MonadState s (StateT2 s m1 m2) Source | |
MonadTransCover2 (StateT2 w) Source | |
MonadTransFold2 (StateT2 s) Source | |
MonadTrans2Down (StateT2 s) 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 | |
(MonadPlus m1, MonadPlus m2, Monad m1, Monad2 m2) => Alternative (StateT2 s m1 m2) Source | |
(MonadPlus m1, MonadPlus m2, Monad m1, Monad2 m2) => MonadPlus (StateT2 s m1 m2) Source | |
(MonadIO m1, Monad m1, Monad2 m2) => MonadIO (StateT2 s m1 m2) Source | |
type Trans2Down (StateT2 s) = StateT s 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
lift functions
liftCatch2 :: Catch2 e m1 m2 (a, s) -> Catch e (StateT2 s m1 m2) a Source
liftListen2 :: (Monad m1, Monad2 m2) => Listen2 w m1 m2 (a, s) -> Listen w (StateT2 s m1 m2) a Source
Level-3
newtype StateT3 s m1 m2 m3 a Source
StateT3 | |
|
(Monad m1, Monad2 m2, Monad3 m3) => MonadState s (StateT3 s m1 m2 m3) Source | |
MonadTransCover3 (StateT3 s) Source | |
MonadTransFold3 (StateT3 s) Source | |
MonadTrans3Down (StateT3 s) 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 | |
(MonadPlus m1, MonadPlus m2, MonadPlus m3, Monad m1, Monad2 m2, Monad3 m3) => Alternative (StateT3 s m1 m2 m3) Source | |
(MonadPlus m1, MonadPlus m2, MonadPlus m3, Monad m1, Monad2 m2, Monad3 m3) => MonadPlus (StateT3 s m1 m2 m3) Source | |
(MonadIO m1, Monad m1, Monad2 m2, Monad3 m3) => MonadIO (StateT3 s m1 m2 m3) Source | |
type Trans3Down (StateT3 s) = StateT2 s 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
lift functions
liftCatch3 :: Catch3 e m1 m2 m3 (a, s) -> Catch e (StateT3 s m1 m2 m3) a Source