Past Meetup

Dan Rosén on "Algebraic Effects" at TimeEdit

This Meetup is past

25 people went

TimeEdit AB

Drakegatan 7 · Göteborg

How to find us

Enter from Drakegatan, cross the atrium and take the stairs or elevator to floor 2. The closest tram stops are Ullevi södra and Ullevi norra, bus 60 also stops at Vagnhallen Gårda.

Location image of event venue


We're back from summer for more on functional programming! :D

Dan Rosén will be giving a talk on Algebraic effects at this meetup based on the paper "Type Directed Compilation of Row-Typed Algebraic Effects" by Daan Leijen.

For who ever is wondering, algebraic effects are an alternative to monads for modeling side-effects (e.g. input/output, state, or exceptions) in an otherwise
pure functional language. The paper can be read online here:

The wonderful folks at TimeEdit have agreed to host this event. They will be providing some food and drinks too! ;)

Below, you can find the abstract for the talk and the speaker's bio.


Algebraic effects

Algebraic Effects offer a simple and uniform interface to program effects. They are very expressive: they can capture patterns usually hard-wired into programming languages, such as exceptions, generators (yield), asynchronicity (async and await). Further, they offer a principled approach to impurity: state, heap effects and IO. In comparison to monads they compose in the sense that they can be run in any order (without quadratic encodings such mtl's), and the run functions are easier to implement.

Algebraic Effects were introduced by Plotkin and Power in 2003, and Algebraic Effect Handlers by Plotkin and Pretnar in 2009 and have gained in popularity and implementations in the recent years, in dedicated languages such as Eff, Links, Frank and Koka, and in libraries for Haskell and Idris. The paper we will give some love this meeting is Daan Leijen's "Type directed compilation of row-typed algebraic effects" from POPL 2017. This article gives an excellent introduction to algebraic effects from a programmer's perspective. It describes his language Koka and shows how to effectively compile it into JavaScript.


About Speaker

Bio: Dan Rosén has a MSc in CS and Licentiate Degree from Chalmers about theorem proving for functional programs. He is a systems developer at Språkbanken, University of Gothenburg, mainly doing ML and front-end development. In his spare time he cannot stop himself searching for better programming languages.