paper

Understanding Haskell-style Overloading via Open Data and Open Functions

arXiv:2507.16086

Abstract

We present a new, uniform semantics for Haskell-style overloading. We realize our approach in a new core language, System F, whose metatheory we mechanize in the Lean4 interactive theorem prover. System F is distinguished by its open data types and open functions, each given by a collection of instances rather than by a single definition. We show that System F can encode advanced features of Haskell's of type class systems, more expressively than current semantics of these features, and without assuming additional type equality axioms.

Understanding Haskell-style Overloading via Open Data and Open Functions · wovepaper