censor :: Monad m => (w -> w) -> WriterT w m a -> WriterT w m a
然而,我们可以很容易地拥有严格更通用的
censor :: Functor m => (w -> w') -> WriterT w m a -> WriterT w' m a
censor = mapWriterT . fmap . second
当然,这对于the mtl
pendant来说不会那么容易,但这是一个令人信服的理由吗?或者它可能与性能有关?