class MonadTrans t where lift :: Monad m => m a -> t m at m a가 모나드라는 보장은 없지만 표준 라이브러리의 MonadTrans 인스턴스들은 다들 t m a가 모나드가 되던데요
아 t m a가 아니라 t m이 모나드겠네요
변환 전의 모나드가 포함된 더 큰 모나드를 만들어 같은 방식으로 쉽게 다루려는게 아니라면 굳이 이런 개념을 만들 필요가 없지 않으려나