Monad classes for transformers in Curry (MonadState, MonadReader, ...), making it easy to work with a deeply nested stack of monad transformers.
Now that multi-parameter type classes (MPTCs) are supported in Curry, we can look into adding the monad transformer type classes known from Haskell's mtl.
MonadState currently does not use a functional dependency like the Haskell version, i.e.
class Monad m => MonadState s m where -- This package
class Monad m => MonadState s m | m -> s where -- Haskell's mtlThis is due to limitations in the type system that would make certain contexts currently impossible to express, even with FlexibleContexts.