Type Error Diagnosis

An important practical aspect of any type system is how to give feedback to the user in case of ill-typed programs. This is in particular important for languages such as ML and Haskell which allow the user to express complex type properties. Surprisingly, little attention has been devoted to the problem of providing good type error messages. Compare this to the many theoretical expositions on type systems which can be found in the literature.

I co-developed novel approaches to assist the user to find the source of a type error in programs written in ML and Haskell style languages. Specific results of this research include a novel constraint-based type inference algorithm [35] which removes the bias towards specific error messages as in case of Milner's inference algorithms W and variants, and the first type error diagnosis support for features such as type annotations and type classes with extensions [31]. The type error diagnosis features are implemented as part of the Chameleon system [34].

Martin Sulzmann 2006-07-19