Time for some explanations. Effect handlers are an exciting idea of the 2010s to support user-defined side effects in a programming language using a structured form of delimited continuations / resumable exceptions. This is an alternative to the dominant approach to user-defined side effects, which is to use monads or applicative functors. In short: it’s a cool language feature that lets people implement “effects” as libraries (generators, coroutines, controlled forms of global state, logging, etc.).
Compared to “the standard Haskell way” of providing user-defined side effects:
Effect handlers in OCaml 5:
I first encountered effect handlers in Pyro, a library (kind of a DSL) for probabilistic programming built on top of PyTorch.
For Pyro, these have been a success as they allow to customize inference without exposing the user to many caveats other systems have.