MTL is a collection of monad classes, extending the 'transformers'
package, using functional dependencies for generic lifting of
monadic actions.