This paper describes a lightweight first-class overloading scheme for ML-style functional programming language. On this scheme, overloaded functions are first-class citizens and have polymorphic types with a type kind which denotes the set of instances of the overloaded functions. The type system and the compilation algorithm of this scheme is designed as a small and natural extension to a polymorphic record calculus and its compilation, so it is easy to extend an existing practical programming language and its full-scale compiler with this scheme if the language includes the polymorphic records. The scheme reported in this paper has been implemented in the SML# compiler, which is made available as an open source software.
|Number of pages||20|
|Publication status||Published - 2012|
ASJC Scopus subject areas