POPL Paper—Hyperfunctions: Communicating Continuations
New paper: “Hyperfunctions: Communicating Continuations”, by myself and Nicolas Wu, will be published at POPL 2026.
The preprint is available here.
The work contained in the paper started with a post on this blog in 2021. I had read a paper by Launchbury, Krstić, and Sauerwein (2000) and I recognised that their hyperfunction construction was quite similar to some types I had used to implement breadth-first traversal (in particular, the Queue in this post). After that, I started seeing hyperfunctions in lots of different settings, rediscovered by different authors, and almost always accompanied by some remark about how difficult it was to understand the type.
My hope with this paper is to clarify and explain what hyperfunctions can do, and where they might be useful. Ideally, the paper will save some future programmer from having to reinvent the type.