We show that the type inference problem for a lambda calculus with records, including a record concatenation operator, is decidable. We show that this calculus does not have principal types, but does have nite complete sets of types: that is, for any term M in the calculus, there exists an e ectively generable nite set of type schemes such that every typing for M is an instance of one the schemes in the set. We show how a simple model of object-oriented programming, including hidden instance variables and multiple inheritance, may be coded in this calculus. We conclude that type inference is decidable for object-oriented programs, even with multiple inheritance and classes as rst-class values. 3
REF first discussed the typing problems that arise with record concatenation.
Type Inference for Record Concatenation and Multiple Inheritance
LICS
Mathematics Computer Science