StateT package:rebase

A state transformer monad parameterized by:
  • s - The state.
  • m - The inner monad.
The return function leaves the state unchanged, while >>= uses the final state of the first computation as the initial state of the second.
Like modifyTVar' but the function is a simple state transition that can return a side value which is passed on as the result of the STM.
Evaluate a state computation with the given initial state and return the final value, discarding the final state.
Evaluate a state computation with the given initial state and return the final state, discarding the final value.
Map both the return value and final state of a computation using the given function.
withStateT f m executes action m on a state modified by applying f.