ICFP 2026 Co-Located Events
ICFP 2026 Co-Located Events
Powered by
Conference Publishing Consulting

19th ACM SIGPLAN International Haskell Symposium (Haskell 2026), August 24–29, 2026, Indianapolis, IN, USA

Haskell 2026 – Preliminary Table of Contents

Contents - Abstracts - Authors

19th ACM SIGPLAN International Haskell Symposium (Haskell 2026)

Frontmatter

Title Page


Article: icfpws26haskellforeword-fm000-p doi:
Welcome from the Chairs


Article: icfpws26haskellforeword-fm001-p doi:
Haskell 2026 Organization


Article: icfpws26haskellforeword-fm002-p doi:

19th ACM SIGPLAN International Haskell Symposium (Haskell 2026) Papers

Evaluating Shrinking (Experience Report)
Alperen Keles, George Miao, and Leonidas Lampropoulos
(University of Maryland, College Park, USA)
Property-based testing frameworks rely on shrinking to turn noisy random failures into counterexamples that developers can debug. Although bug-finding performance is routinely measured, shrinking itself is rarely evaluated quantitatively. We present an experience report on evaluating shrinking across three Haskell frameworks: QuickCheck, Hedgehog, and Falsify. The comparison spans four ETNA workloads and several generator families, including type-based, API-based, and correct-by-construction generators. We measure both effectiveness, using tree edit distance to a ground-truth minimum found by exhaustive search, and cost, using shrink time and time per unit of shrinking progress. Across these workloads, QuickCheck's structural shrinking is usually faster and remains competitive on final counterexample quality; integrated shrinking does not by itself guarantee a performance or effectiveness advantage. We discuss what these results imply for future evaluations and designs of shrinking algorithms.

Article Search Article: icfpws26haskellmain-p4-p doi:10.1145/3830439.3831271
CloudMicroHaskell: Direct-Style Distributed Haskell via Runtime Graph Serialisation
Robert Krook and Lennart Augustsson
(Chalmers University of Technology and University of Gothenburg, Sweden; Unaffiliated, Sweden)
Cloud Haskell brings Erlang-style distributed programming to Haskell, but its treatment of mobile code exposes a difficult boundary in the source-level API. Remote processes must be expressed as static closures, messages must satisfy serialisation constraints, and participating nodes are assumed to share the relevant code.
This paper explores a different design point. We present CloudMicroHaskell, a Cloud Haskell-style library built on MicroHaskell, whose runtime represents both code and data as a combinator graph. When a process or message crosses a node boundary, CloudMicroHaskell serialises the reachable graph directly. As a result, remote spawning can be written in direct style: process bodies may capture variables from their surrounding scope, and messages may contain ordinary values, including functions, without programmer-written closure conversion.
We describe the implementation of the MicroCloudHaskell node runtime, including remote spawn, message delivery, monitors, exit propagation, and library implementations of generic servers and supervisors. We evaluate the system with process/message benchmarks, a distributed work-pool benchmark, a file-synchronisation case study, and a heterogeneous deployment on microcontrollers. The results show that runtime graph serialisation makes the Cloud Haskell programming model substantially more direct, while also making the tradeoff explicit: some guarantees enforced by Cloud Haskell's source-level types become dynamic checks, and programmers must be aware of laziness and runtime-owned resources when moving graphs between nodes.

Article Search Article: icfpws26haskellmain-p8-p doi:10.1145/3830439.3831272
Coercive Subtyping for Implicit Functorial Programming
Ryan Doenges, Caden Parajuli, Ayden Lamparski, Ke Wu, and Aaron Stump
(Boston College, USA; Johns Hopkins University, USA)
Programming with typeclass-defined combinators like fmap allows programs a great deal of generality and concision, but programmers have to explicitly invoke combinators in the right places in order to get their programs to type check. In this paper, we propose inferring these operations using a coercive subtyping discipline and study the metatheory of the resulting algebra of coercions. For functors, we promote the fmap combinator of type (AB) → F AF B to a coercion ABF AF B. We incorporate it into a monomorphic system of coercions for base types, arrow types, and functor types. We prove that the resulting system of coercions is coherent, meaning that all possible choices of coercions from A to B end up equivalent. The proof of the theorem is based on coherence by evaluation, an approach to coherence proofs based on the well-known technique of normalization by evaluation. All definitions and theorems in the paper are checked in Agda, which played a valuable role in the design of the system.

Article Search Artifacts Available Article: icfpws26haskellmain-p23-p doi:10.1145/3830439.3831273
Tikka: An Interpreter and Debugger for a Pedagogical Subset of Haskell
Alex Hobbs and Alex Dixon
(University of Warwick, UK)
Functional programming is a core part of many undergraduate-level courses in Computer Science. Pedagogical interest in Haskell continues to grow as functional idioms become commonplace in popular multi-paradigm languages. The Glasgow Haskell Compiler (GHC) is by far Haskell’s most used compiler, but can hinder students’ initial learning because of its detailed and verbose error messages which are designed to support experienced users and cover a broad language surface. In this paper we introduce Tikka, an interpreter for a carefully-selected subset of Haskell with concise, beginner-friendly error messages, evaluation tracing, and a bespoke IDE. This paper discusses the design of an interpreter targeted towards novice users, and presents an evaluation of its use in practice through user testing and a side-by-side comparison of GHC and Tikka.

Article Search Article: icfpws26haskellmain-p48-p doi:10.1145/3830439.3831274
Turning Parser Errors into Suggestions for REPL-Driven DSLs (Functional Pearl)
Matthías Páll Gissurarson, Elisabet Lobo-Vesga, and Alejandro Russo
(DPella, Gothenburg, Sweden; Chalmers University of Technology, Sweden; University of Gothenburg, Sweden)
Many of the domain-specific languages we use every day are not written to files but typed at an interactive prompt, e.g., database shells, cloud CLIs, and in-house analytics consoles. For these REPL-driven command languages, autocomplete is, we argue, not a polish feature but a core usability requirement --and yet they are precisely the languages whose authors often have the fewest resources to invest in tooling. Designing a new programming language tailored to specific domain challenges can be both powerful and rewarding. However, a major hurdle for adoption among users is, in our experience, the lack of tooling support, particularly features like autocomplete that enhance usability and reduce the learning curve. In this paper, we present a fresh perspective that turns parser errors -- traditionally seen as roadblocks -- into opportunities for generating valid, context-aware autocomplete suggestions. By leveraging the parser's built-in feedback mechanisms, our method offers a lightweight, adaptable, and simple solution, enabling domain-specific languages to provide basic development assistance with minimal overhead. The technique fits the REPL-driven DSL genre by design: inputs are modest-size single statements, the cursor sits at the end of the line, and parser-error recovery is unnecessary. We apply the technique to DPella DSL, a production REPL-driven DSL whose grammar comprises 43 top-level command constructors, 130 reserved keywords, and 22 labelled syntactic categories that drive identifier completion.

Article Search Artifacts Available Article: icfpws26haskellmain-p69-p doi:10.1145/3830439.3831275
A Cost-Aware Probability Monad for Liquid Haskell
Matthias Hetzenberger, Georg Moser, and Florian Zuleger
(TU Wien, Austria; University of Innsbruck, Austria; TU München, Germany)
Probabilistic algorithms and data structures are widely used to obtain favourable expected performance guarantees. While their mathematical analysis is often well understood, mechanising expected-cost analyses remains challenging, requiring reasoning about probability distributions, expectations, and recursive stochastic behaviour. Existing formal approaches frequently require substantial manual proof effort, since expected costs are often encoded separately from probabilistic computations and must therefore be propagated explicitly throughout proofs.
In this paper, we present a cost-aware probability monad for Liquid Haskell that supports reasoning about probabilistic programs together with their expected costs. Our approach combines executable probabilistic programs with refinement-type-based verification and SMT-supported automation. The monad intrinsically tracks probability mass, expected values, and expected costs through refinement types, enabling many quantitative properties of probabilistic computations to be inferred compositionally from program structure.
We evaluate our approach on several classical probabilistic algorithms and data structures, including meldable heaps, randomised quicksort and quickselect, randomised splay trees, random permutations, and the hiring problem. The case studies demonstrate different points along the spectrum between automated and interactive verification.

Article Search Artifacts Available Article: icfpws26haskellmain-p90-p doi:10.1145/3830439.3831276

19th ACM SIGPLAN International Haskell Symposium (Haskell 2026)

proc time: 0.1