Most practical programming languages include ways of performing various non-functional effects, such as exceptions, generators, dynamic binding and concurrency. Languages typically offer ways for programmers to define new functions, new types, and sometimes even new syntax, but the set of available effects is usually baked into the language and cannot be extended within programs.

In this talk I'll show how a single language construct in OCaml, the effect handler, makes it possible to define all the above effects and more within a program, transferring power from language designers to language users. In particular, I will talk about how effect handlers allow expressing custom concurrency primitives for Multicore OCaml


Outline/Structure of the Talk

Following a gentle introduction to the concept of effect handlers, I will illustrate the power of the language construct in building your own effects with a live demo.

Learning Outcome

An insight into the expressive power of simple primitive in expressing your own concurrent and effectful constructs.

Target Audience

Anyone interested in concurrent functional programming

schedule Submitted 5 years ago