- newtype State s a = State {
- runState' :: s -> (#a, s#)

- get :: State s s
- gets :: (s -> a) -> State s a
- put :: s -> State s ()
- modify :: (s -> s) -> State s ()
- evalState :: State s a -> s -> a
- execState :: State s a -> s -> s
- runState :: State s a -> s -> (a, s)
- mapAccumLM :: Monad m => (acc -> x -> m (acc, y)) -> acc -> [x] -> m (acc, [y])

# Documentation

:: Monad m | |

=> (acc -> x -> m (acc, y)) | combining funcction |

-> acc | initial state |

-> [x] | inputs |

-> m (acc, [y]) | final state, outputs |

Monadic version of mapAccumL