I expect to look back on this code and cringe, but... it compiles!
Write Functor, Applicative, Monad instances for: - MaybeT - EitherT - ReaderT