Didier Le Botlan and Didier Rémy N ° 6228 June 2007

Abstract

The language MLF has been proposed as an alternative to System F that permits partial type inference a la ML. It differs from System F by its types and type-instance relation. Unfortunately, the definition of type instance is only syntactic, and not underpined by some underlying semantics. It has so far only been justified a posteriori by the type soundness result. In this work, we revisit MLF following a more progressive approach stepping on System F. We argue that System F is not a well-suited language for ML-style type inference because it fails to factorize some closely related typing derivations. We solve this problem in Curry’s style MLF by enriching types with a new form of quantification that may represent a whole collection of System F types. This permits a natural interpretation of MLF types as sets of System-F types and pulling back the instance relation from set inclusion on the interpretations. We also give an equivalent syntactic definition of the type-instance, presented as a set of inference rules. We derive a Church’s style version of MLFby further refining types so as to distinguish between user-provided and inferred type information. The resulting language is more canonical than the one originally proposed. We show an embedding of ML in MLF and an encoding of System F into MLF. Besides, as MLF is more expressive than System F, an encoding of MLF is given towards an extension of System F with local binders. Key-words: System F, MLF, Unification, Types, Graphs, Binders, Inference Recasting MLF Résumé : Le langage MLF a été conçu comme une alternative au Système F permettant l’inférence partielle de type à la ML. Il diffère du Système F par la nature de ses types et par sa relation d’instance sur les types. Malheureusement, la définition de l’instance de type est purement syntaxique et n’est pas soutenue par une sémantique sous-jacente. Jusqu’à présent elle n’a été justifiée qu’a posteriori par le résultat de correction. Dans ce travail nous réexaminons MLF en suivant une approche plus progressive en s’appuyant sur le Système F. Nous soutenons que le Système F n’est pas bien adapté pour l’inférence de type à la ML parce qu’il ne réussit pas à factoriser des dérivations de typage étroitement reliées. Nous résolvons ce problème dans la présentation de MLF à la Curry en enrichissant les types avec une nouvelle forme de quantification qui permet de représenter une collection tout entière de types du système F. Cela conduit à une interprétation naturelle des types de MLF comme des ensembles de types du système F et à en déduire la relation d’instance par inclusion des interprétations. Nous donnons également une définition syntaxique équivalence de l’instance de type sous la forme d’un ensemble de règles d’inférences. Nous en dérivons une présentation à la Church de MLF en raffinant encore les types de façon à distinguer l’information de type inférée de celle fournie par l’utilisateur. Le langage résultant est plus canonique que celui initialement proposé. Nous montrons un plongement de ML dans MLF ainsi qu’un codage du Système F dans MLF. De plus, comme MLF est plus expressif que le Système F, un codage de MLF est fourni vers une extension du Système F avec des liaisons locales. Mots-clés : Système F, MLF, Unification, Types, Graphes, Lieurs, Inférence

4 Figures and Tables

Cite this paper

@inproceedings{RmyDidierLB, title={Didier Le Botlan and Didier R{\'e}my N ° 6228 June 2007}, author={Didier R{\'e}my and Recasting MLF and Didier Le Botlan} }