The Calculated Typer
Proceedings of the 18th ACM SIGPLAN International Haskell Symposium, p. 17–29, 2025.
Abstract
We present a calculational approach to the design of type checkers, showing how they can be derived from behavioural specifications using equational reasoning. We focus on languages whose semantics can be expressed as a fold, and show how the calculations can be simplified using fold fusion. This approach enables the compositional derivation of correct-by-construction type checkers based on solving and composing fusion preconditions. We introduce our approach using a simple expression language, to which we then add support for exception handling and checked exceptions.
Keywords: Program Calculation, Type Checking