Decidable Subtyping of Existential Types for Julia
Julia Belyakova, Benjamin Chung, Ross Tate, Jan Vitek
Abstract
Julia is a modern scientific-computing language that relies on multiple dispatch to implement generic libraries. While the language does not have a static type system, method declarations are decorated with expressive type annotations to determine when they are applicable. To find applicable methods, the implementation uses subtyping at run-time. We show that Julia’s subtyping is undecidable, and we propose a restriction on types to recover decidability by stratifying types into method signatures over value types—where the former can freely use bounded existential types but the latter are restricted to use-site variance. A corpus analysis suggests that nearly all Julia programs written in practice already conform to this restriction.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext a0041381-cf99-4511-9eb4-13d311fcb373Builds on3
- Type stability in Julia: avoiding performance pathologies in JIT compilationArtem Pelenitsyn, Julia Belyakova, Benjamin Chung, Ross Tate et al.OOPSLA 2021 · 13 citations
- Decidable subtyping for path dependent typesJulian Mackay, Alex Potanin, Jonathan Aldrich, Lindsay GrovesPOPL 2020 · 13 citations
- Undecidability of d<: and its decidable fragmentsJason Z. S. Hu, Ondrej LhotákPOPL 2020 · 9 citations
Related papers
- World age in Julia: optimizing method dispatch in the presence of evalJulia Belyakova, Benjamin Chung, Jack Gelinas, Jameson Nash et al.OOPSLA 2020 · 9 citations
- The Simple Essence of Overloading: Making Ad-Hoc Polymorphism More Algebraic with Flow-Based Variational Type-CheckingJirí Benes, Jonathan Immanuel BrachthäuserOOPSLA 2025
- Designing types for R, empiricallyAlexi Turcotte, Aviral Goel, Filip Krikava, Jan VitekOOPSLA 2020 · 9 citations
- Parametric Subtyping for Structural Parametric PolymorphismHenry DeYoung, Andreia Mordido, Frank Pfenning, Ankush DasPOPL 2024 · 3 citations
- Wildcards need witness protectionKevin BierhoffOOPSLA 2022 · 1 citation
