Monad classes using functional dependencies, with instances for various
monad transformers.
