为什么Control.Monad.Trans.Writer.censor不允许转换writer类型?

时间:2017-03-31 15:35:44

标签: haskell monad-transformers parametric-polymorphism

The signature

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

0 个答案:

没有答案