simple-effects-0.5.0.3: A simple effect system that integrates with MTL

Safe HaskellNone
LanguageHaskell2010

Control.Effects.State

Documentation

data GetState s Source #

Instances

Monad m => MonadEffect (GetState s) (StateT s m) Source # 

Methods

effect :: proxy (GetState s) -> EffectMsg (GetState s) -> StateT s m (EffectRes (GetState s)) Source #

type EffectRes (GetState s) Source # 
type EffectRes (GetState s) = s
type EffectMsg (GetState s) Source # 
type EffectMsg (GetState s) = ()

data SetState s Source #

Instances

Monad m => MonadEffect (SetState s) (StateT s m) Source # 

Methods

effect :: proxy (SetState s) -> EffectMsg (SetState s) -> StateT s m (EffectRes (SetState s)) Source #

type EffectRes (SetState s) Source # 
type EffectRes (SetState s) = ()
type EffectMsg (SetState s) Source # 
type EffectMsg (SetState s) = s

getState :: forall s m. MonadEffect (GetState s) m => m s Source #

setState :: forall s m. MonadEffect (SetState s) m => s -> m () Source #

modifyState :: forall s m. MonadEffectState s m => (s -> s) -> m () Source #

handleGetState :: m s -> EffectHandler (GetState s) m a -> m a Source #

handleSetState :: (s -> m ()) -> EffectHandler (SetState s) m a -> m a Source #

handleState :: Monad m => m s -> (s -> m ()) -> EffectHandlerState s m a -> m a Source #

handleStateIO :: MonadIO m => s -> EffectHandlerState s m a -> m a Source #

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