Just to provide a picture for the general landscape, eff
belongs to a family of effect libraries that uses a technique called “evidence-passing” to avoid the high performance cost brought by free monads, mtl typeclasses and the likes. They don’t necessarily have delimited continuations but all have very good performance compared to say, polysemy
or unspecialized fused-effects
:
-
effectful
doesn’t have delimited continuation but has generally very good support for IO. -
cleff
is a library that I wrote that is intended to be beginner-friendly, it also doesn’t have delimited continuation. -
eveff
andmpeff
are proof-of-concept libraries of the paper that first formally described evidence-passing
I personally think that evidence-passing is the future of Haskell effect libraries, because it’s easy to understand, has low performance overhead and works very well with other techniques (including either delimited continuation or MonadUnliftIO, it’s delimited continuation and MonadUnliftIO that don’t work well with each other).