Proposed by: Sudha Parimala

Programming with Effect Handlers

Effect Handlers are an abstraction for manipulating control flow in a program. Conceptually, effect handlers are a mechanism for resumable exceptions. They generalize common abstractions such as exceptions, generators, asynchronous I/O, or concurrency, as well as other seemingly esoteric programming abstractions such as transactional memory and probabilistic computations.


Having started as an academic concept, it has been gaining traction as a practical programming abstraction. They're a first-class mechanism in languages such as OCaml and Haskell, that support an effect system natively as an abstraction for expressing concurrency. Many programming languages such as Javascript and its frameworks, Python, Java, etc. have libraries to implement effect handlers.


This talk will gently introduce the concept of effect handlers through examples in Javascript and OCaml.

Source code/Reference: https://github.com/ocaml-multicore/ocaml-effects-tutorial

Talk duration: