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.
WWW: https://github.com/ekmett/mtl