Freer monads, more extensible effects

Oleg Kiselyov, Hiromi Ishii

Research output: Contribution to journalArticlepeer-review

6 Citations (Scopus)

Abstract

We present a rational reconstruction of extensible effects, the recently proposed alternative to monad transformers, as the confluence of efforts to make effectful computations compose. Free monads and then extensible effects emerge from the straightforward term representation of an effectful computation, as more and more boilerplate is abstracted away. The generalization process further leads to freer monads, constructed without the Functor constraint. The continuation exposed in freer monads can then be represented as an efficient type-aligned data structure. The end result is the algorithmically efficient extensible effects library, which is not only more comprehensible but also faster than earlier implementations. As an illustration of the new library, we show three surprisingly simple applications: non-determinism with committed choice (LogicT), catching IO exceptions in the presence of other effects, and the semi-automatic management of file handles and other resources through monadic regions. We extensively use and promote the new sort of 'laziness', which underlies the left Kan extension: instead of performing an operation, keep its operands and pretend it is done.

Original languageEnglish
Pages (from-to)94-105
Number of pages12
JournalACM SIGPLAN Notices
Volume50
Issue number12
DOIs
Publication statusPublished - 2015 Aug 30

Keywords

  • coroutine
  • effect handler
  • effect interaction
  • free monad
  • Kan extension
  • open union
  • type and effect system

ASJC Scopus subject areas

  • Computer Science(all)

Fingerprint

Dive into the research topics of 'Freer monads, more extensible effects'. Together they form a unique fingerprint.

Cite this