Second-class Modules for the Effekt Programming Language

Effekt is a novel programming language featuring new ways to modularize software and structure complex control flow. In particular, it includes lexical effect handlers as well as an advanced type- and effect system. However, the language is yet lacking a full module system.

The goal of this thesis is to explore the design space of module systems and to elaborate possible designs that integrate well with the novel features of effect handlers. Eventually, the design should be implemented as a prototype by building on the existing the language implementation.



“Effekt is a research programming language that features a lightweight implementation of effects and handlers. As part of this thesis, the language was extended with second-class modules and related functionalities. These new features allow programmers to define modules and abstract them with interfaces. Also, the module system aims to strengthen the interplay between effects and modules. Both concepts share common characteristics, paving the way for potential future unification. This work examines those possibilities and provides insights into the relationship of modules and effects.”


Thesis Slides

Additional Material


Jonathan Brachthäuser