Polished @duairc's work in `Control.Monad.Trans.Compose`