Relaxing the Value Restriction

Restricting polymorphism to values is now the standard way to obtain soundness in ML-like programming languages with imperative features. While this solution has undeniable advantages over previous approaches, it forbids polymorphism in many cases where it would be sound. We use a subtyping based approach to recover part of this lost polymorphism, without changing the type algebra itself, and this has significant applications.

[1]  Christian Skalka,et al.  Syntactic Type Soundness for HM(X) , 2002, Electron. Notes Theor. Comput. Sci..

[2]  Atsushi Ohori,et al.  Type inference with rank 1 polymorphism for type-directed compilation of ML , 1999, ICFP '99.

[3]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[4]  John Greiner,et al.  Weak polymorphism can be sound , 1996, Journal of Functional Programming.

[5]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[6]  François Pottier A Semi-Syntactic Soundness Proof for HM(X) , 2001 .

[7]  Xavier Leroy The objective caml system release 3 , 2001 .

[8]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[9]  Damien Doligez,et al.  The Objective Caml system release 2.04 , 2002 .

[10]  Xavier Leroy,et al.  Polymorphic typing of an algorithmic language , 1992 .

[11]  Andrew K. Wright Simple imperative polymorphism , 1995, LISP Symb. Comput..

[12]  Robin Milner,et al.  Definition of standard ML , 1990 .

[13]  Didier Rémy,et al.  Semi-Explicit First-Class Polymorphism for ML , 1999, Inf. Comput..

[14]  Xavier Leroy,et al.  Polymorphism by name for references and continuations , 1993, POPL '93.

[15]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[16]  Jacques Garrigue Simple Type Inference for Structural Polymorphism , 2001, APLAS.

[17]  Ramesh Viswanathan,et al.  Standard ML-NJ Weak Polymorphism and Imperative Constructs , 1996, Inf. Comput..

[18]  Xavier Leroy,et al.  Polymorphic type inference and assignment , 1991, POPL '91.

[19]  Pierre Weis,et al.  The CAML reference manual , 1990 .

[20]  Didier Rémy,et al.  Extending ML with Semi-Explicit Higher-Order Polymorphism , 1997, TACS.

[21]  Didier Rémy,et al.  Objective ML: a simple object-oriented extension of ML , 1997, POPL '97.

[22]  Martin Odersky,et al.  Type Inference with Constrained Types , 1999, Theory Pract. Object Syst..