The definition of Standard ML
Typing first-class continuations in ML
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphic type inference and assignment
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference for polymorphic references
Information and Computation
Type systems for programming languages
Handbook of theoretical computer science (vol. B)
Co-induction in relational semantics
Theoretical Computer Science
Compiling with continuations
Typing references by effect inference
ESOP'92 Symposium proceedings on 4th European symposium on programming
Explicit polymorphism and CPS conversion
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Integrating functional and imperative programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
A generalization of exceptions and control in ML-like languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Polymorphism and type inference in database programming
ACM Transactions on Database Systems (TODS)
Polymorphic typing of variables and references
ACM Transactions on Programming Languages and Systems (TOPLAS)
Intersection types and computational effects
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Explicitly Typed lambda µ-Calculus for Polymorphism an Call-by-Value
TLCA '99 Proceedings of the 4th International Conference on Typed Lambda Calculi and Applications
Efficient type inference using ranked type variables
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Polymorphic delimited continuations
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
ReCaml: execution state as the cornerstone of reconfigurations
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
This article investigates an ML-like language with byname semantics for polymorphism: polymorphic objects are not evaluated once for all at generalization time, but re-evaluated at each specialization. Unlike the standard ML semantics, the by-name semantics works well with polymorphic references and polymorphic continuations: the naive typing rules for references and for continuations are sound with respect to this semantics. Polymorphism by name leads to a better integration of these imperative features into the ML type discipline. Practical experience shows that it retains most of the efficiency and predictability of polymorphism by value.