Skip to main content

First-class polymorphism for ML

Kahrs, Stefan (1994) First-class polymorphism for ML. In: Sannella, Don, ed. Programming Languages and Systems — ESOP '94 5th European Symposium on Programming. Lecture Notes in Computer Science . Springer, Berlin, Germany, pp. 333-347. ISBN 978-3-540-57880-2. E-ISBN 978-3-540-48376-2. (doi:10.1007/3-540-57880-3_22) (KAR id:21199)

PDF
Language: English
Click to download this file (244kB) Preview
[thumbnail of firstclass-esop.pdf]
Preview
This file may not be suitable for users of assistive technology.
Request an accessible format
Postscript
Language: English
Click to download this file (178kB) Preview
[thumbnail of firstclass-esop.ps]
Preview
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:
http://dx.doi.org/10.1007/3-540-57880-3_22

Abstract

Polymorphism in ML is implicit: type variables are silently introduced and eliminated. The lack of an explicit declaration of type variables restricts the expressiveness of parameterised modules (functors). Certain polymorphic functions cannot be expressed as functors, because implicit type parameters of polymorphic functions are in one respect more powerful than formal type parameters of functors. The title suggests that this lack of expressiveness is due to a restricted ability to abstract --- polymorphism is restricted. Type variables can only be abstracted from value declarations, but not from other forms of declarations, especially not from structure declarations. The paper shows in the case of Standard ML how (syntax and) semantics can be modified to fill this language gap. This is not so much a question of programming language design as a contribution for better understanding the relationship between polymorphic functions, polymorphic types, and functors.

Item Type: Book section
DOI/Identification number: 10.1007/3-540-57880-3_22
Uncontrolled keywords: ML, polymorphism, modules
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Mark Wheadon
Date Deposited: 13 Aug 2009 20:43 UTC
Last Modified: 16 Nov 2021 09:59 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/21199 (The current URI for this page, for reference purposes)
Kahrs, Stefan: https://orcid.org/0000-0001-5099-9375
  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.