Declarative Type Debugging

Speaker: Martin Sulzmann, National University of Singapore

When & Where: 12:30pm, Wednesday, Oct 9, 2002, Room 400 AKW


We propose an approach to debugging type errors by mapping the typing problem for a program to a system of constraints each attached to program code that generates the constraints. We use reasoning about constraint satisfiability to find minimal justifications of type errors, and to explain unexpected types that arise. Through an interactive process highly akin to declarative debugging, a user can track down exactly where a type error occurs. The approach handles Hindley-Milner types with Haskell style overloading. It also handles advanced type extensions such as functional dependencies in type classes. The approach is implemented as part of the Chameleon type system.

This work is joint work with Peter J. Stuckey and Jeremy Wazny.