The extensible effects library and the layers library appear to have the same goals (making it easy to compose different effects together). Both talk about the advantages they offer over mtl, but neither makes reference to the other. Can both accomplish the same thing? Does one subsume the other? Does each have some feature that the other lacks?
While I'm in no way experienced with any of those, it's quite straighforward from the articles.
While layers
are rather building upon MTL, exteff
is a wholly different approach. exteff
defines one monad that contains information about its effects in its type. exteff
claims to solve the problem of monad ordering, i.e. if monads A and B are interchangable, the classic approach would make A (B a)
and B (A a)
different types. In exteff
they're the same.
From the interface of layers
it seems that it didn't solve that problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With