Safe Haskell | None |
---|---|
Language | Haskell2010 |
The State
as an effect with dynamic dispatch.
It's not clear in which situation it's beneficial to use this instead of Effective.State or Effective.State.MVar as you either:
- Share state between threads and need the synchonized version.
- Don't share state between threads and are free to use the faster, pure version.
However, let's include this for now.
Synopsis
- data State s
- runState :: s -> Eff (State s ': es) a -> Eff es (a, s)
- evalState :: s -> Eff (State s ': es) a -> Eff es a
- execState :: s -> Eff (State s ': es) a -> Eff es s
- runStateMVar :: s -> Eff (State s ': es) a -> Eff es (a, s)
- evalStateMVar :: s -> Eff (State s ': es) a -> Eff es a
- execStateMVar :: s -> Eff (State s ': es) a -> Eff es s
- get :: State s :> es => Eff es s
- put :: State s :> es => s -> Eff es ()
- state :: State s :> es => (s -> (a, s)) -> Eff es a
- modify :: State s :> es => (s -> s) -> Eff es ()
- stateM :: State s :> es => (s -> Eff es (a, s)) -> Eff es a
- modifyM :: State s :> es => (s -> Eff es s) -> Eff es ()
Documentation
Provide access to a mutable state of type s
.
Whether the state is represented as a pure value or an MVar
depends on the
interpretation.