层和可扩展效果之间有什么区别?

lmm*_*lmm 16 monads haskell

扩展效果库和库似乎有相同的目标(因此很容易组合不同的效果一起).他们都谈到了他们提供的优于mtl的优势,但都没有提到另一个.两者都可以完成同样的事情吗?一个人包含另一个吗?每个都有一些其他缺乏的功能吗?

pol*_*.ph 10

虽然我对其中的任何一个都没有任何经验,但从文章中可以看出它是相当直接.

虽然layers是建立在MTL上,但却exteff是一种完全不同的方法.exteff定义一个monad,其中包含有关其类型的效果的信息.exteff声称要解决单子排序,也就是说,如果单子A和B是可以互换的,经典的做法会使问题A (B a)B (A a)不同的类型.在exteff它们是相同的.

接口layers似乎它并没有解决这个问题.