@techreport{leijen2016algebraic, author = {Leijen, Daan}, title = {Algebraic Effects for Functional Programming}, year = {2016}, month = {August}, abstract = {Algebraic effect handlers, are recently gaining in popularity as a purely functional approach to modeling effects. In this article, we give an end-to-end overview of practical algebraic effects in the context of a compiled implementation in the Koka language. In particular, we show how algebraic effects generalize over common constructs like exception handling, state, iterators and async-await. We give an effective type inference algorithm based on extensible effect rows using scoped labels, and a direct operational semantics. Finally, we show an efficient compilation scheme to common runtime platforms (such as JavaScript, the JVM, or .NET) using a type directed selective CPS translation.}, url = {http://approjects.co.za/?big=en-us/research/publication/algebraic-effects-for-functional-programming/}, pages = {15}, number = {MSR-TR-2016-29}, }