


- Computation type: Computations which maintain state.
- Binding strategy: Binding threads a state parameter through the sequence of bound functions so that the same state value is never used twice, giving the illusion of in-place update.
- Useful for: Building computations from sequences of operations that require a shared state.
https://wiki.haskell.org/All_About_Monads#The_State_monad
How the `State` monad’s bind operation threads the state parameter through the sequence of functions

MonadState functions (`get` and `put`)