Department of Electrical Engineering and Computer Science; Massachusetts Institute of Technology
We extend a fragment of the programming language ML by incorporating a more general form of record pattern matching and providing for user-declared subtypes. Together, these two enhancements may be used to support a restricted object-oriented programming style. In keeping with the framework of ML, we present typing rules for the language, and develop a type inference aJgorithm. We prove that the algorithm is sound with respect to the typing rules, and that it infers a most general typing for every typable expression.