Programming a Web Server with Algebraic Effects
Algebraic effect handlers generalize many control-flow abstractions that are implemented specially in most languages, like exception handling, iterators, or backtracking. In this talk I show how one can implement full support for asynchronous programming (on top of Node.js) as a library using just algebraic effect handlers (in the Koka language). I will use a web server as an example application to show how algebraic effects and handlers can be used to implement useful abstractions like ambient state and block-scoped cancellation.
I am a member of the Research In Software Engineering (RISE) group and chair of the Programming Languages working group (PLX). Currently, I am interested in the design and application of strong type systems and declarative programming languages, like Haskell. In particular, I am interested in programming with Effect inference in the Koka project. Furthermore, I work on domain specific embedded languages, language design, and compiler technology.