The mtl Package Hackage Build Status

See mtl on Hackage for more information.



  • Control.Monad.Identity now re-exports Control.Monad.Trans.Identity
  • Fix a bug in which Control.Monad.State.Class.modify' was not as strict in the new state as its counterparts in transformers
  • Add a MonadError () Maybe instance
  • Add liftEither :: MonadError e m => Either e a -> m a to Control.Monad.Except{.Class}
  • Add a MonadWriter w ((,) w) instance (when built against base-4.9 or later)


  • Provide MINIMAL pragmas for MonadState, MonadWriter, MonadReader
  • Added a cyclic definition of ask in terms of reader for consistency with get/put vs. state and tell vs. writer
  • Fix deprecation warnings caused by transformers 0.4 deprecating ErrorT.
  • Added Control.Monad.Except in the style of the other mtl re-export modules

  • Fixed a bug caused by the change in how transformers 0.4 exports its data types. We will now export runFooT for each transformer again!


  • transformers 0.4 support
  • Added instances for ExceptT
  • Added modify' to Control.Monad.State.*

  • Avoid importing Control.Monad.Instances on GHC 7.8 to build without deprecation warnings.


  • Removed the now-irrelevant Error constraint from the MonadError instance for Either e.