[Haskell-beginners] class (Monad m) => MonadState s m | m -> s where - What does m | m -> s construct do?