extensible effects库和layers库似乎具有相同的目标(使轻松组合不同的效果很容易)。
双方都在谈论他们提供的优于mtl的优势,但都没有提及彼此。两者都能完成同一件事吗?一个包含另一个吗?每个人都有其他人缺乏的某些功能吗?

最佳答案

尽管我对这些都不了解,但它与the articles相比非常简单。

尽管layers完全基于MTL构建,但exteff是一种完全不同的方法。 exteff定义一个monad,该monad包含有关其类型的效果的信息。 exteff声称可以解决monad排序的问题,即,如果monad A和B可互换,则经典方法会使A (B a)B (A a)具有不同的类型。在exteff中,它们是相同的。

layersinterface看来,它并不能解决该问题。

09-26 01:09