effectful-0.0.0.0: A simple, yet powerful extensible effects library.
Safe HaskellNone
LanguageHaskell2010

Effectful.State

Description

The State as an effect.

Represented as a pure value underneath, therefore:

  • very fast
  • not suitable for sharing between multiple threads.

If you plan to do the latter, have a look at Effective.State.MVar or Effective.State.Dynamic.

Synopsis

Documentation

data State s Source #

Provide access to a pure, mutable state of type s.

runState :: s -> Eff (State s ': es) a -> Eff es (a, s) Source #

evalState :: s -> Eff (State s ': es) a -> Eff es a Source #

execState :: s -> Eff (State s ': es) a -> Eff es s Source #

get :: State s :> es => Eff es s Source #

put :: State s :> es => s -> Eff es () Source #

state :: State s :> es => (s -> (a, s)) -> Eff es a Source #

modify :: State s :> es => (s -> s) -> Eff es () Source #

stateM :: State s :> es => (s -> Eff es (a, s)) -> Eff es a Source #

modifyM :: State s :> es => (s -> Eff es s) -> Eff es () Source #