Type checking records and variants in a natural extension of ML

Strongly typed languages with records may have inclusion rules so that records with more fields can be used instead of records with less fields. But these rules lead to a global treatment of record types as a special case. We solve this problem by giving an ordinary status to records without any ad hoc assertions, replacing inclusion rules by extra information in record types. With this encoding ML naturally extends its polymorphism to records but any other host language will also transmit its power.

[1]  Bernard Robinet,et al.  Combinators and functional programming languages : Thirteenth Spring School of the LITP, Val d'Ajol, France, May 6-10, 1985, proceedings , 1986 .

[2]  M. Wand,et al.  Corrigendum: complete type interference for simple objects , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[3]  Mario Coppo,et al.  An Extended Polymorphic Type System for Applicative Languages , 1980, MFCS.

[4]  Jerzy Tiuryn,et al.  On the computational power of universally polymorphic recursion , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[5]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[6]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[7]  Gérard Huet,et al.  The CAML primer , 1990 .

[8]  Pierre Weis,et al.  The CAML reference manual , 1990 .

[9]  Daniel Leivant,et al.  Polymorphic type inference , 1983, POPL '83.

[10]  D. Evelyne Thèse de doctorat d'Etat , 1988 .

[11]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[12]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[13]  Luca Cardelli,et al.  Structural subtyping and the notion of power type , 1988, POPL '88.

[14]  John C. Mitchell,et al.  ML with extended pattern matching and subtypes , 1988, LISP and Functional Programming.

[15]  WegnerPeter,et al.  On understanding types, data abstraction, and polymorphism , 1985 .

[16]  John C. Mitchell,et al.  Polymorphic Type Inference and Containment , 1988, Inf. Comput..

[17]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.