签名是
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
当然,这对于mtl
吊坠来说不会那么容易,但这是一个令人信服的理由吗?或者它可能与性能有关?
签名是
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
当然,这对于mtl
吊坠来说不会那么容易,但这是一个令人信服的理由吗?或者它可能与性能有关?