I think given AMP that transformers should use CPP to relax Monad constraints to Applicative on newer versions of base.
As an example:
except :: (Monad m) => Either e a -> ExceptT e m a
except m = ExceptT (return m)
could become
except :: (Applicative m) => Either e a -> ExceptT e m a
except m = ExceptT (pure m)