English

Polymorphic Type Inference for Dynamic Languages

Programming Languages 2023-11-20 v1

Abstract

We present a type system that combines, in a controlled way, first-order polymorphism with intersectiontypes, union types, and subtyping, and prove its safety. We then define a type reconstruction algorithm that issound and terminating. This yields a system in which unannotated functions are given polymorphic types(thanks to Hindley-Milner) that can express the overloaded behavior of the functions they type (thanks tothe intersection introduction rule) and that are deduced by applying advanced techniques of type narrowing(thanks to the union elimination rule). This makes the system a prime candidate to type dynamic languages.

Keywords

Cite

@article{arxiv.2311.10426,
  title  = {Polymorphic Type Inference for Dynamic Languages},
  author = {Giuseppe Castagna and Mickaël Laurent and Kim Nguyen},
  journal= {arXiv preprint arXiv:2311.10426},
  year   = {2023}
}