arXiv · 2203.01835
Implicit Polarized F: local type inference for impredicativity
Abstract
System F, the polymorphic lambda calculus, features the principle of impredicativity: polymorphic types may be (explicitly) instantiated at other types, enabling many powerful idioms such as Church encoding and data abstraction. Unfortunately, type applications need to be implicit for a language to be human-usable, and the problem of inferring all type applications in System F is undecidable. As a result, language designers have historically avoided impredicative type inference. We reformulate System F in terms of call-by-push-value, and study type inference for it. Surprisingly, this new perspective yields a novel type inference algorithm which is extremely simple to implement (not even requiring unification), infers many types, and has a simple declarative specification. Furthermore, our approach offers type theoretic explanations of how many of the heuristics used in existing algorithms for impredicative polymorphism arise.
Explore related subjects
Keep this discovery
Henry Mercer, Cameron Ramsay, Neel Krishnaswami. 2022-03-03. Implicit Polarized F: local type inference for impredicativity. https://arxiv.org/abs/2203.01835
Cite the original work for its findings. Save a collection to share your selection of sources.