The issues with effect systems

There are so many options. If one has time to invest in learning one system, which would you recommend? I was about to dive into Effectful but now I am not sure.

1 Like

Dive into effectful. I am sure.

3 Likes

I think effectful and cleff would be good choices today. It depends a bit on what effects you want, though. Both effectful and cleff are essentially a reader-monad with a record of effect handlers, and some clever machinery to thread them around your program as you introduce and eliminate effects. This encoding does limit exactly what effects you can encode - but I think is a good trade-off as the more elaborate control-flow effects can usually be locally recovered by layering on things like ListT, LogicT, SearchT, etc. If you want those in an effects library, fused-effects might be a reasonable choice though.

4 Likes

I can warmly recommend Effectful. :slight_smile:

3 Likes