Journal article

HM(X) type inference is CLP(X) solving

Martin Sulzmann, Peter J Stuckey

JOURNAL OF FUNCTIONAL PROGRAMMING | CAMBRIDGE UNIV PRESS | Published : 2008

Abstract

The HM(X) system is a generalization of the Hindley/Milner system parameterized in the constraint domain X. Type inference is performed by generating constraints out of the program text, which are then solved by the domain-specific constraint solver X. The solver has to be invoked at the latest when type inference reaches a let node so that we can build a polymorphic type. A typical example of such an inference approach is Milner's algorithm W. We formalize an inference approach where the HM(X) type inference problem is first mapped to a CLP(X) program. The actual type inference is achieved by executing the CLP(X) program. Such an inference approach supports the uniform construction of type ..

View full abstract