mini-0.1.0.0: Minimal essentials
Safe HaskellSafe-Inferred
LanguageHaskell2010

Mini.Transformers.StateT

Description

Extension of a monad with a modifiable environment

Synopsis

Type

data StateT s m a Source #

A monad with modifiable type s, inner monad m, and return type a

Instances

Instances details
MonadTrans (StateT s) Source # 
Instance details

Defined in Mini.Transformers.StateT

Methods

lift :: Monad m => m a -> StateT s m a Source #

(Monad m, Alternative m) => Alternative (StateT s m) Source # 
Instance details

Defined in Mini.Transformers.StateT

Methods

empty :: StateT s m a #

(<|>) :: StateT s m a -> StateT s m a -> StateT s m a #

some :: StateT s m a -> StateT s m [a] #

many :: StateT s m a -> StateT s m [a] #

Monad m => Applicative (StateT s m) Source # 
Instance details

Defined in Mini.Transformers.StateT

Methods

pure :: a -> StateT s m a #

(<*>) :: StateT s m (a -> b) -> StateT s m a -> StateT s m b #

liftA2 :: (a -> b -> c) -> StateT s m a -> StateT s m b -> StateT s m c #

(*>) :: StateT s m a -> StateT s m b -> StateT s m b #

(<*) :: StateT s m a -> StateT s m b -> StateT s m a #

Monad m => Functor (StateT s m) Source # 
Instance details

Defined in Mini.Transformers.StateT

Methods

fmap :: (a -> b) -> StateT s m a -> StateT s m b #

(<$) :: a -> StateT s m b -> StateT s m a #

Monad m => Monad (StateT s m) Source # 
Instance details

Defined in Mini.Transformers.StateT

Methods

(>>=) :: StateT s m a -> (a -> StateT s m b) -> StateT s m b #

(>>) :: StateT s m a -> StateT s m b -> StateT s m b #

return :: a -> StateT s m a #

Reading

get :: Monad m => StateT s m s Source #

Fetch the current value of the state

foo = do
  s <- get
  bar s

Modifying

modify :: Monad m => (s -> s) -> StateT s m () Source #

Update the current value of the state with the given operation

foo = modify $ \s -> bar s

Writing

put :: Monad m => s -> StateT s m () Source #

Set the state to the given value

Runners

runStateT :: StateT s m a -> s -> m (a, s) Source #

Unwrap a StateT given a starting state