## Extending ML with semiexplicit higher-order polymorphism (1999)

Venue: | Information and Computation |

Citations: | 21 - 8 self |

### BibTeX

@ARTICLE{Garrigue99extendingml,

author = {Jacques Garrigue and Didier Remy},

title = {Extending ML with semiexplicit higher-order polymorphism},

journal = {Information and Computation},

year = {1999}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. We propose a modest conservative extension to ML that al-lows semi-explicit higher-order polymorphism while preserving the essen-tial properties of ML. In our proposal, the introduction of polymorphic types remains fully explicit, that is, both the introduction and the exact polymorphic type must be specied. However, the elimination of poly-morphic types is now semi-implicit: only the elimination itself must be speci ed as the polymorphic type is inferred. This extension is particu-larly useful in Objective ML where polymorphism replaces subtyping.

### Citations

378 |
Principal type-schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ...useful in Objective ML where polymorphism replaces subtyping. Introduction The success of the ML language is due to its combination of several attractive features. Undoubtedly, the polymorphism of ML =-=[2]-=- |or polymorphism a la ML| with the type inference it allows, is a major advantage. The ML type system stays in close correspondence with the rules of logic, following the Curry-Howard isomorphism be... |

260 | Pict: a programming language based on the picalculus - Pierce, Turner - 2000 |

167 |
Solving equations in abstract algebras: a rule-based survey of unification
- Jouannaud, Kirchner
- 1991
(Show Context)
Citation Context ... a polytype is treated as a rigid skeleton corresponding to the polymorphic part, on which hang simple types. We present both unication and type inference as solving unication constraints following =-=[4]-=-. Unication on simple types First, we remind unication for simple types. In this part we exclude polytypes from types . A unication problem is a formula U dened by the following grammar. U ::= ?... |

107 |
Polymorphic type inference and containment
- Mitchell
- 1988
(Show Context)
Citation Context ...s. They also introduce another mechanism that allows annotations of abstractions by type schemes as in x:: x together with a type containment relation on type schemes similar to the one of Mitchell =-=[8]-=-. Type schemes may be of the form 8: 1 ! 2 , where i are type scheme themselves. However, universal variables such as can only be substituted by simple types. Thus, the only way to apply a fun... |

99 | Putting type annotations to work - Odersky, Läufer - 1996 |

80 | A direct algorithm for type inference in the rank-2 fragment of the second-order λ-calculus
- Kfoury, Wells
- 1994
(Show Context)
Citation Context ...efore, they all suer the same problem: types must be written explicitly, both at the introduction and elimination of polymorphism. Recent results on the undecidability of type inference for system F =-=[16, 5, 11]-=- also do not leave many hopes forsnding a good subset of system F that signicantly extends ML, moreover with decidable type inference and principal types. Previous attempts to accomplish this task we... |

63 | Polymorphic type inference and abstract data types
- Läufer, Odersky
- 1994
(Show Context)
Citation Context ... (s! ! ) ! ! should become a method for container objects, of type 8: ( ! ! ) ! ! where is the type of the elements of the container. The extension of ML withsrst-class abstract types =-=[6, 14]-=- also requiressrst-class polymorphic functions: for instance, an expression such as f: open x as y in f y can only be typed if the argument f is polymorphic so that the abstract representation of y i... |

60 | Programming objects with ML-ART: An extension to ML with abstract and record types - Rémy - 1994 |

59 | Dynamics in ML
- Leroy, Mauny
- 1994
(Show Context)
Citation Context ... ? a 1 : 8: 0 a 1 6 b A x : (8: 0 )f=g ` a 2 : A ` let x = a 1 in a 2 : This restriction to principal judgments is not new: it has already been used for the typing of dynamics in ML =-=[7]-=- or value-only polymorphism in Standard ML'96 to disallow monomorphic variables at toplevel. In the former case, the program x: (dynamics x) is rejected because, in the principal judgment x : ` x :... |

51 | Obective ML: A simple object-oriented extension of ML - Rémy, Vouillon - 1997 |

36 | Extension of ML type system with a sorted equational theory on types - Rémy - 1992 |

27 | On the undecidability of partial polymorphic type reconstruction. Fundarnenta Informaticae - Pfenning - 1993 |

16 |
An implementation of FSub
- Cardelli
- 1993
(Show Context)
Citation Context ...f partial type inference in system F . Some implementations of languages based on system F relieve the user from the burden of writing all types down. In Cardelli's implementation of the language Fun =-=[1]-=- some polymorphic polytypes may be marked as implicit (actually their variables are marked) and automatically instantiated when used, or marked to stay polymorphic. This mechanism turns out to be quit... |

11 |
Polymorphic methods with self types for ML-like languages
- Duggan
- 1995
(Show Context)
Citation Context ...such as can only be substituted by simple types. Thus, the only way to apply a function of type 8:! to a polymorphic value remains to embed the argument inside an explicitly dened polytype. In =-=[3]-=-, Duggan proposes an extension to ML with objects and polymorphic methods. His solution heavily relies on the use of kinds and type annotations. These are carried by method names that must be declared... |

9 | Typeability and type checking in Second W order -calculus are equal and undecidable - Wells - 1994 |

1 | An implementation of FSub. Research Report 97, Digital Equipment Corporation Systems Research - Cardelli - 1993 |

1 | Preliminary version available as - Informaticae - 1993 |