Flexible types: robust type inference for first-class polymorphism - Leijen, Daan (36th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL'09), 2009)
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)