ACM Home Page
Please provide us with feedback. Feedback
MLF for everyone (users, implementers, and designers)
Full text PdfPdf (224 KB)
Source
International Conference on Functional Programming archive
Proceedings of the 2007 workshop on Workshop on ML table of contents
Freiburg, Germany
Pages: 1 - 2  
Year of Publication: 2007
ISBN:978-1-59593-676-9
Author
Didier Rémy  INRIA, Le Chesnay Cedex, France
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 15,   Citation Count: 0
Additional Information:

abstract   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1292535.1292536
What is a DOI?

ABSTRACT

MLF is an alternative to ML that permits second-order polymorphism as in System F but retains (partial) type inference a la ML. Type annotations are requested only on parameters of functions that are used polymorphically. Type abstractions and type applications are entirely alleviated. Inpractice, very few type annotations are actually needed. Moreover, small program transformations such as commutation of arguments, η-expansion, etc. never require extra type annotations. MLF is a conservative extension of ML that allows to type all of System-F terms-and a few more.

Types of MLF extend those of System-F with instance-bounded polymorphism so that more expressions have principal types and also abstraction-bounded polymorphism so that first-class types may always be treated abstractly during type inference. However, types may be more concisely described as the superposition of a standard term-dag representation of first-order types and a binding tree, with well-formedness conditions relating the two. This allows for a simple definition of type instance and leads to an efficient unification algorithm on types.

This graphical presentation of types may also be extended to represent type schemes and unification and instantiation constraints as additional edges. Typing rules, type inference, and type soundness can then all be described using type constraints. Type inference for MLF is performed much as for ML and is about as efficient.