haskell-halogen-core
Safe HaskellNone
LanguageGHC2021

Control.Monad.State.Prim

Synopsis

Documentation

newtype StateT s (m :: Type -> Type) a Source #

Constructors

StateT (IORef s -> m a) 

Instances

Instances details
MonadError e m => MonadError e (StateT s m) Source # 
Instance details

Defined in Control.Monad.State.Prim

Methods

throwError :: e -> StateT s m a #

catchError :: StateT s m a -> (e -> StateT s m a) -> StateT s m a #

MonadReader r m => MonadReader r (StateT s m) Source # 
Instance details

Defined in Control.Monad.State.Prim

Methods

ask :: StateT s m r #

local :: (r -> r) -> StateT s m a -> StateT s m a #

reader :: (r -> a) -> StateT s m a #

MonadIO m => MonadState s (StateT s m) Source # 
Instance details

Defined in Control.Monad.State.Prim

Methods

get :: StateT s m s #

put :: s -> StateT s m () #

state :: (s -> (a, s)) -> StateT s m a #

MonadTrans (StateT s) Source # 
Instance details

Defined in Control.Monad.State.Prim

Methods

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

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

Defined in Control.Monad.State.Prim

Methods

catch :: (HasCallStack, Exception e) => StateT s m a -> (e -> StateT s m a) -> StateT s m a #

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

Defined in Control.Monad.State.Prim

Methods

throwM :: (HasCallStack, Exception e) => e -> StateT s m a #

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

Defined in Control.Monad.State.Prim

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 #

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

Defined in Control.Monad.State.Prim

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 Control.Monad.State.Prim

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 #

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

Defined in Control.Monad.State.Prim

Methods

fail :: String -> StateT s m a #

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

Defined in Control.Monad.State.Prim

Methods

liftIO :: IO a -> StateT s m a #

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

Defined in Control.Monad.State.Prim

Methods

withRunInIO :: ((forall a. StateT s m a -> IO a) -> IO b) -> StateT s m b #

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

evalStateT :: MonadIO m => StateT s m a -> s -> m a Source #

execStateT :: MonadIO m => StateT s m a -> s -> m s Source #

stateM :: MonadIO m => (s -> m (a, s)) -> StateT s m a Source #

Inject "normal" state transformer into our StateT. Not atomic.