Blogs (28) >>
ICFP 2017
Sun 3 - Sat 9 September 2017 Oxford, United Kingdom
Thu 7 Sep 2017 09:00 - 10:00 at L5 - CUFP Tutorials C2 Chair(s): Runhang Li

Effects is a model of side-effects as an interaction between a program and a handler: an authority in charge of resources that receives and acts on program requests. The explicitness about the possible and not possible side-effects, the localized handling, controlled interactions and encapsulation, the ease of reasoning make effects useful even in impure languages, which can do side-effects natively.

There are several implementations of effects in Haskell and Scala. Effects are natively supported in Idris and soon to be in OCaml. They are the defining feature of PureScript. Finally, the language Eff is built on algebraic effects and local effect handling. By nature effects are extensible, letting us easily combine in the same program independently developed components, each with their own effects. In the narrow sense, extensible effects refer to a specific implementation method, often used in Haskell, Scala, and even in Coq.

This tutorial aims first to explain the ideas behind the extensible effects, on a progression of simple to understand but nevertheless realistic implementations. Using the final implementation, we we will experience defining and handling various effects, on more complex and actually useful examples: transactional memory, probabilistic programming, incremental parsing and modular rollback.

This tutorial to be interactive, working through problems with active audience participation.

Thu 7 Sep

Displayed time zone: Belfast change

09:00 - 10:00
CUFP Tutorials C2CUFP at L5
Chair(s): Runhang Li Twitter, Inc
Tutorial C2: Extensible Effects: understanding them, implementing them, using them