Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data State s m a where
- get :: forall s r. MemberWithError (State s) r => Sem r s
- gets :: forall s a r. Member (State s) r => (s -> a) -> Sem r a
- put :: forall s r. MemberWithError (State s) r => s -> Sem r ()
- modify :: Member (State s) r => (s -> s) -> Sem r ()
- runState :: s -> Sem (State s ': r) a -> Sem r (s, a)
- evalState :: s -> Sem (State s ': r) a -> Sem r a
- runLazyState :: s -> Sem (State s ': r) a -> Sem r (s, a)
- evalLazyState :: s -> Sem (State s ': r) a -> Sem r a
- runStateIORef :: forall s r a. Member (Embed IO) r => IORef s -> Sem (State s ': r) a -> Sem r a
- hoistStateIntoStateT :: Sem (State s ': r) a -> StateT s (Sem r) a
Effect
data State s m a where Source #
An effect for providing statefulness. Note that unlike mtl's
StateT
, there is no restriction that the State
effect corresponds necessarily to local state. It could could just as well
be interrpeted in terms of HTTP requests or database access.
Interpreters which require statefulness can reinterpret
themselves in terms of State
, and subsequently call runState
.
Instances
type DefiningModule (State :: Type -> k -> Type -> Type) Source # | |
Defined in Polysemy.State |
Actions
Interpretations
evalState :: s -> Sem (State s ': r) a -> Sem r a Source #
Run a State
effect with local state.
Since: 1.0.0.0
runLazyState :: s -> Sem (State s ': r) a -> Sem r (s, a) Source #
Run a State
effect with local state, lazily.
evalLazyState :: s -> Sem (State s ': r) a -> Sem r a Source #
Run a State
effect with local state, lazily.
Since: 1.0.0.0
runStateIORef :: forall s r a. Member (Embed IO) r => IORef s -> Sem (State s ': r) a -> Sem r a Source #