First-class Polymorphism with Type Inference

13 years 10 months ago
First-class Polymorphism with Type Inference
Languages like ML and Haskell encourage the view of values as first-class entities that can be passed as arguments or results of functions, or stored as components of data structures. The same languages offer parametric polymorphism, which allows the use of values that behave uniformly over a range of different types. But the combination of these features is not supported— polymorphic values are not first-class. This restriction is sometimes attributed to the dependence of such languages on type inference, in contrast to more expressive, explicitly typed languages, like System F, that do support first-class polymorphism. This paper uses relationships between types and logic to develop a type system, FCP, that supports first-class polymorphism, type inference, and also first-class abstract datatypes. The immediate result is a more expressive language, but there are also long term implications for language design.
Mark P. Jones
Added 07 Aug 2010
Updated 07 Aug 2010
Type Conference
Year 1997
Where POPL
Authors Mark P. Jones
Comments (0)