Polymorphic Records for Dynamic Languages

Giuseppe Castagna,Loïc Peyrot
2024-03-30
Abstract:We define and study "row polymorphism" for a type system with set-theoretic types, specifically union, intersection, and negation types. We consider record types that embed row variables and define a subtyping relation by interpreting types into sets of record values and by defining subtyping as the containment of interpretations. We define a functional calculus equipped with operations for field extension, selection, and deletion, its operational semantics, and a type system that we prove to be sound. We provide algorithms for deciding the typing and subtyping relations.
Programming Languages
What problem does this paper attempt to address?