Departmental Papers (CIS)

Date of this Version

September 2008

Document Type

Conference Paper


Postprint version. Published in ICFP '08 Proceedings of the 2008 SIGPLAN International Conference on Functional Programming, Volume 43, Issue 9, September 2008, pages 295-306. Publisher URL:


Languages supporting polymorphism typically have ad-hoc restrictions on where polymorphic types may occur. Supporting "first class" polymorphism, by lifting those restrictions, is obviously desirable, but it is hard to achieve this without sacrificing type inference. We present a new type system for higher-rank and impredicative polymorphism that improves on earlier proposals: it is an extension of Damas-Milner; it relies only on System F types; it has a simple, declarative specification; it is robust to program transformations; and it enjoys a complete and decidable type inference algorithm.


higher-rank types, impredicativity, type inference



Date Posted: 27 October 2008

This document has been peer reviewed.