Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
Monad m => MonadEffect1 (State s) (StateT s m) Source # | |
type EffectRes1 (State s) Source # | |
type EffectMsg1 (State s) Source # | |
type EffectCon1 (State s) a Source # | |
data StateMessage s a where Source #
GetMessage :: StateMessage s Get | |
SetMessage :: !s -> StateMessage s Set |
data StateResult s a where Source #
GetResult :: {..} -> StateResult s Get | |
| |
SetResult :: StateResult s Set |
type MonadEffectState s m = MonadEffect1 (State s) m Source #
stateEffect :: forall s a m. MonadEffectState s m => StateMessage s a -> m (StateResult s a) Source #
getState :: forall s m. MonadEffectState s m => m s Source #
setState :: forall s m. MonadEffectState s m => s -> m () Source #
modifyState :: forall s m. MonadEffectState s m => (s -> s) -> m () Source #
handleState :: forall m s a. Monad m => m s -> (s -> m ()) -> EffectHandler1 (State s) m a -> m a Source #
handleStateIO :: MonadIO m => s -> EffectHandler1 (State s) m a -> m a Source #
handleStateT :: Monad m => s -> StateT s m a -> m a Source #
module Control.Effects1