documentation for Control.Monad.State