Type Processing by Constraint Reasoning [chapter]

Peter J. Stuckey, Martin Sulzmann, Jeremy Wazny
2006 Lecture Notes in Computer Science  
Herbrand constraint solving or unification has long been understood as an efficient mechanism for type checking and inference for programs using Hindley/Milner types. If we step back from the particular solving mechanisms used for Hindley/Milner types, and understand type operations in terms of constraints we not only give a basis for handling Hindley/Milner extensions, but also gain insight into type reasoning even on pure Hindley/Milner types, particularly for type errors. In this paper we
more » ... sider typing problems as constraint problems and show which constraint algorithms are required to support various typing questions. We use a light weight constraint reasoning formalism, Constraint Handling Rules, to generate suitable algorithms for many popular extensions to Hindley/Milner types. The algorithms we discuss are all implemented as part of the freely available Chameleon system. Strongly typed languages provide the user with the convenience to significantly reduce the number of errors in a program. Well-typed programs can be
doi:10.1007/11924661_1 fatcat:4elrruxqerhu7hcjke32y4joqe