ICFP 2025
Sun 12 - Sat 18 October 2025 Singapore
co-located with ICFP/SPLASH 2025
Mon 13 Oct 2025 14:30 - 14:55 at Orchid Plenary Ballroom - Distinguished Papers Chair(s): Dominique Devriese

In strict languages, laziness is typically modeled with explicit thunks
that defer a computation until needed and memoize the result.
Such thunks are implemented using a closure. Implementing
<em>lazy data structures</em> using thunks thus has several disadvantages:
closures cannot be printed or inspected during debugging;
allocating closures requires additional memory, sometimes leading to poor performance;
reasoning about the performance of such lazy data structures is notoriously subtle.
These complications prevent wider adoption of lazy data structures,
even in settings where they should shine.
In this paper, we introduce <em>lazy constructors</em> as a simple first-order
alternative to lazy thunks. Lazy constructors enable the thunks of a lazy data structure
to be defunctionalized, yielding implementations of lazy data structures
that are not only significantly faster but can easily be inspected for debugging.

Mon 13 Oct

Displayed time zone: Perth change

13:40 - 15:20
Distinguished PapersICFP Papers at Orchid Plenary Ballroom
Chair(s): Dominique Devriese KU Leuven
13:40
25m
Talk
Call-Guarded Abstract Definitional InterpretersDistinguished Paper
ICFP Papers
Kimball Germane Brigham Young University
DOI
14:05
25m
Talk
Effectful Lenses: There and Back with Different MonadsDistinguished Paper
ICFP Papers
Ruifeng Xie Peking University, Tom Schrijvers KU Leuven, Zhenjiang Hu Peking University
DOI
14:30
25m
Talk
First-Order LazinessDistinguished Paper
ICFP Papers
Anton Lorenzen University of Edinburgh, Daan Leijen Microsoft Research, Wouter Swierstra Utrecht University, Netherlands, Sam Lindley University of Edinburgh
DOI Pre-print
14:55
25m
Talk
Multi-stage Programming with Splice VariablesDistinguished Paper
ICFP Papers
Tsung-Ju Chiang University of Toronto, Ningning Xie University of Toronto
DOI