[Haskell-cafe] lightweight alternative to mtl?

Roman Cheplyaka roma at ro-che.info
Sat Jun 16 16:57:18 CEST 2012

* Anton Kholomiov <anton.kholomiov at gmail.com> [2012-06-16 17:59:23+0400]
> It's class for strict and lazy states. Maybe it's better
> to take approach of containers (the same interface and different modules)?

The lazy and strict State monads differ only in their >>= operator.
Since you don't have control over importing the Monad instance, those
two have to be different types.

The reason why put/get/modify are in a class is to allow them to be used
not just with State, but also with any monad stack that has a State
inside, like `ReaderT e (State s)`.

Roman I. Cheplyaka :: http://ro-che.info/

More information about the Haskell-Cafe mailing list