Monad classes using functional dependencies, with instances for various monad transformers, inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, by Mark P Jones, in Advanced School of Functional Programming, 1995 (


  • 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.