Flexible types: robust type inference for first-class polymorphism

Daan Leijen

Abstract

We present HML, a type inference system that supports full firstclass polymorphism where few annotations are needed: only function parameters with a polymorphic type need to be annotated. HML is a simplification of MLF where only flexibly quantified types are used. This makes the types easier to work with from a programmers perspective, and simplifies the implementation of the type inference algorithm. Still, HML retains much of the expressiveness of MLF, it is robust with respect to small program transformations, and has a simple specification of the type rules with an effective type inference algorithm that infers principal types.

Extended version available as Microsoft Research technical report MSR-TR-2008-55, Mar 2008 (see link below)

Details

Publication typeInproceedings
Published in36th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'09)
AddressSavannah, Georgia
PublisherACM SIGPLAN

Previous versions

Daan Leijen. Flexible types: robust type inference for first-class polymorphism, March 2008.

> Publications > Flexible types: robust type inference for first-class polymorphism