English

Typed Design Patterns for the Functional Era

Programming Languages 2023-07-17 v1

Abstract

This paper explores how design patterns could be revisited in the era of mainstream functional programming languages. I discuss the kinds of knowledge that ought to be represented as functional design patterns: architectural concepts that are relatively self-contained, but whose entirety cannot be represented as a language-level abstraction. I present four concrete examples embodying this idea: the Witness, the State Machine, the Parallel Lists, and the Registry. Each pattern is implemented in Rust to demonstrate how careful use of a sophisticated type system can better model each domain construct and thereby catch user mistakes at compile-time.

Keywords

Cite

@article{arxiv.2307.07069,
  title  = {Typed Design Patterns for the Functional Era},
  author = {Will Crichton},
  journal= {arXiv preprint arXiv:2307.07069},
  year   = {2023}
}

Comments

To appear at FUNARCH'23 @ ICFP

R2 v1 2026-06-28T11:29:56.397Z