Software Engineering

Effekt: Extensible Algebraic Effects in Scala (Short Paper)

by Jonathan Im­manuel Brachthäuser and Philipp Schus­ter

In Pro­ceed­ings of the In­ter­na­tional Sym­po­sium on Scala. ACM Press, 2017.

This pub­li­ca­tion is re­lated to the Lex­i­cal Ef­fect Han­dlers re­search pro­ject.

Ab­stract

Al­ge­braic ef­fects are an in­ter­est­ing way to struc­ture ef­fect­ful pro­grams and offer new mod­u­lar­ity prop­er­ties. We pre­sent the Scala li­brary Ef­fekt, which is im­ple­mented in terms of a monad for multi-prompt de­lim­ited con­tin­u­a­tions and cen­tered around ca­pa­bil­ity pass­ing. This makes the newly pro­posed fea­ture of im­plicit func­tion types a per­fect fit for the syn­tax of our li­brary. Bas­ing the li­brary de­sign on ca­pa­bil­ity pass­ing and a poly­mor­phic em­bed­ding of ef­fect han­dlers fur­ther­more opens up in­ter­est­ing di­men­sions of ex­ten­si­bil­ity. Pre­lim­i­nary bench­marks com­par­ing Ef­fekt with an es­tab­lished li­brary sug­gest sig­nif­i­cant speedups.

Talk

Video record­ing of the talk avail­able on YouTube.