Monad classes using type families, with instances for various monad transformers, inspired by the paper "Functional Programming with Overloading and Higher-Order Polymorphism", by Mark P Jones. ok kili@