Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Wright, A.K.: Simple imperative polymorphism. Lisp and Symbolic Computation 8 (1995)
Garrigue, J.: Relaxing the value restriction (extended version). RIMS Preprint 1444, Research Institute for Mathematical Sciences, Kyoto University (2004), http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/papers/
Tofte, M.: Type inference for polymorphic references. Information and Computation 89, 1–34 (1990)
Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)
Greiner, J.: SML weak polymorphism can be sound. Technical Report CMU-CS-93-160R, Canegie-Mellon University, School of Computer Science (1993)
Hoang, M., Mitchell, J., Viswanathan, R.: Standard ML-NJ weak polymorphism and imperative constructs. In: Proc. IEEE Symposium on Logic in Computer Science, pp. 15–25 (1993)
Talpin, J.P., Jouvelot, P.: The type and effect discipline. In: Proc. IEEE Symposium on Logic in Computer Science, pp. 162–173 (1992)
Leroy, X., Weis, P.: Polymorphic type inference and assignment. In: Proc. ACM Symposium on Principles of Programming Languages, pp. 291–302 (1991)
Leroy, X.: Polymorphic typing of an algorithmic language. Research report 1778, INRIA (1992)
Rémy, D., Vouillon, J.: Objective ML: A simple object-oriented extension of ML. In: Proc. ACM Symposium on Principles of Programming Languages, pp. 40–53 (1997)
Garrigue, J.: Programming with polymorphic variants. In: ML Workshop, Baltimore (1998)
Garrigue, J., Rémy, D.: Extending ML with semi-explicit higher order polymorphism. Information and Computation 155, 134–171 (1999)
Ohori, A., Yoshida, N.: Type inference with rank 1 polymorphism for type-directed compilation of ML. In: Proc. International Conference on Functional Programming. ACM Press, New York (1999)
Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml system release 3.06, Documentation and user’s manual. Projet Cristal, INRIA (2002)
Garrigue, J.: Simple type inference for structural polymorphism. In: The Ninth International Workshop on Foundations of Object-Oriented Languages, Portland, Oregon (2002)
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115, 38–94 (1994)
Pottier, F.: A semi-syntactic soundness proof for HM(X). Research Report 4150, INRIA (2001)
Odersky, M., Sulzmann, M., Wehr, M.: Type inference with constrained types. Theory and Practice of Object Systems 5, 35–55 (1999)
Skalka, C., Pottier, F.: Syntactic type soundness for HM(X). In: Proceedings of the 2002 Workshop on Types in Programming (TIP 2002), Dagstuhl, Germany. Electronic Notes in Theoretical Computer Science, vol. 75 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Garrigue, J. (2004). Relaxing the Value Restriction. In: Kameyama, Y., Stuckey, P.J. (eds) Functional and Logic Programming. FLOPS 2004. Lecture Notes in Computer Science, vol 2998. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24754-8_15
Download citation
DOI: https://doi.org/10.1007/978-3-540-24754-8_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21402-1
Online ISBN: 978-3-540-24754-8
eBook Packages: Springer Book Archive