Value restriction
Appearance
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
In functional programming, in particular the ML programming language family, the value restriction means that declarations are only polymorphically generalized if they are syntactic values (also called non-expansive). The value restriction prevents reference cells from holding values of different types and preserves type safety.
See also
References
- Mads Tofte (1988). Operational Semantics and Polymorphic Type Inference. PhD thesis.
- M. Tofte (1990). "Type inference for polymorphic references".
- O'Toole (1990). "Type Abstraction Rules for Reference: A Comparison of Four Which Have Achieved Notoriety".
- Xavier Leroy & Pierre Weis (1991). "Polymorphic type inference and assignment". POPL '91.
- A. K. Wright (1992). "Typing references by effect inference".
- My Hoang, John C. Mitchell and Ramesh Viswanathan (1993). "Standard ML-NJ weak polymorphism and imperative constructs".
- Andrew Wright (1995). "Simple imperative polymorphism". In LISP and Symbolic Computation, p. 343–356.
- Jacques Garrigue (2004). "Relaxing the Value Restriction".
External links
- Value Restriction — MLton
- Notes on SML97's Value Restriction — Principles of Programming Languages, Geoffrey Smith, Florida International University