What happens now after "delimited continuations" is merged to GHC?

The approach outlined by Alexis’ talk can be implemented now (or when GHC 9.6 is released), though I’m not sure about its exact performance characteristics. It would certainly be pretty good compared to mainstream effect libraries, but I don’t know if it would be significantly better than a similar approach that doesn’t require patching GHC.

There are still some problems, mainly unsoundness in some edge cases, that we’d like to see solved, perhaps by limiting its expressiveness a bit. Beyond MonadIO, many people also want MonadUnliftIO or MonadBaseControl IO in their effect system, but it’s still an open problem as to how to make it work with delimited continuations (I bet it’s impossible).

Andrzej thinks that hasura/eff#12 is a bug, which is what I originally thought too. But it’s really an absence of feature rather than a bug, because the behavior described in the issue is entirely in line with the semantics of delimited continuations. So I think this problem is not essential to the development of eff in general.

But even with all these caveats, it’ll surely be a vast improvement from the previous approaches to effect systems.

3 Likes