Polymorphic type inference for dynamic languages
G Castagna, M Laurent, K Nguyễn - Proceedings of the ACM on …, 2024 - dl.acm.org
We present a type system that combines, in a controlled way, first-order polymorphism with
intersection types, union types, and subty**, and prove its safety. We then define a type …
intersection types, union types, and subty**, and prove its safety. We then define a type …
Quicksub: Efficient iso-recursive subty**
Many programming languages need to check whether two recursive types are in a subty**
relation. Traditionally recursive types are modelled in two different ways: equi-or iso …
relation. Traditionally recursive types are modelled in two different ways: equi-or iso …
Getting into the flow: Towards better type error messages for constraint-based type inference
I Bhanuka, L Parreaux, D Binder… - Proceedings of the ACM …, 2023 - dl.acm.org
Creating good type error messages for constraint-based type inference systems is difficult.
Typical type error messages reflect implementation details of the underlying constraint …
Typical type error messages reflect implementation details of the underlying constraint …
When Subty** Constraints Liberate: A Novel Type Inference Approach for First-Class Polymorphism
Type inference in the presence of first-class or “impredicative” second-order polymorphism à
la System F has been an active research area for several decades, with original works …
la System F has been an active research area for several decades, with original works …
Pluggable type inference for free
A pluggable type system extends a host programming language with type qualifiers. It lets
programmers write types like unsigned int, secret string, and nonnull object. Typechecking …
programmers write types like unsigned int, secret string, and nonnull object. Typechecking …
Set-theoretic types for erlang
Erlang is a functional programming language with dynamic ty**. The language offers
great flexibility for destructing values through pattern matching and dynamic type tests …
great flexibility for destructing values through pattern matching and dynamic type tests …
Structural subty** as parametric polymorphism
Structural subty** and parametric polymorphism provide similar flexibility and reusability
to programmers. For example, both features enable the programmer to provide a wider …
to programmers. For example, both features enable the programmer to provide a wider …
Ill-Typed Programs Don't Evaluate
S Ramsay, C Walpole - Proceedings of the ACM on Programming …, 2024 - dl.acm.org
We introduce two-sided type systems, which are sequent calculi for ty** formulas. Two-
sided type systems allow for hypothetical reasoning over the ty** of compound program …
sided type systems allow for hypothetical reasoning over the ty** of compound program …
Orthologic with axioms
We study the proof theory and algorithms for orthologic, a logical system based on
ortholattices, which have shown practical relevance in simplification and normalization of …
ortholattices, which have shown practical relevance in simplification and normalization of …
super-Charging Object-Oriented Programming Through Precise Ty** of Open Recursion
We present a new variation of object-oriented programming built around three simple and
orthogonal constructs: classes for storing object state, interfaces for expressing object types …
orthogonal constructs: classes for storing object state, interfaces for expressing object types …