Polymorphic type inference and containment
Information and Computation - Semantics of Data Types
F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Inheritance as implicit coercion
Information and Computation
Basic theory of F-bounded quantification
Information and Computation
Typed compilation of inclusive subtyping
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
A type directed translation of MLF to system F
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Information and Computation
Harnessing MLFwith the power of system F
MFCS'10 Proceedings of the 35th international conference on Mathematical foundations of computer science
Generative type abstraction and type-level computation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A church-style intermediate language for MLF
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
A church-style intermediate language for MLF
Theoretical Computer Science
Hi-index | 0.00 |
Erasable coercions in System F-eta, also known as retyping functions, are well-typed eta-expansions of the identity. They may change the type of terms without changing their behavior and can thus be erased before reduction. Coercions in F-eta can model subtyping of known types and some displacement of quantifiers, but not subtyping assumptions nor certain forms of delayed type instantiation. We generalize F-eta by allowing abstraction over retyping functions. We follow a general approach where computing with coercions can be seen as computing in the lambda-calculus but keeping track of which parts of terms are coercions. We obtain a language where coercions do not contribute to the reduction but may block it and are thus not erasable. We recover erasable coercions by choosing a weak reduction strategy and restricting coercion abstraction to value-forms or by restricting abstraction to coercions that are polymorphic in their domain or codomain. The latter variant subsumes F-eta, F-sub, and MLF in a unified framework.