Gradual typing lets programmers evolve their dynamically typed programs by gradually adding explicit type annotations, which confer benefits like improved performance and fewer r...
When enriching the λ-calculus with rewriting, union types may be needed to type all strongly normalizing terms. However, with rewriting, the elimination rule (∨ E) of union typ...
We present MJ: a language for specifying general classes whose members are produced by iterating over members of other classes. We call this technique “class morphing” or just ...
We introduce a new model based on coherence spaces for interpreting large impredicative type systems such as the Extended Calculus of Constructions (ECC). Moreover, we show that t...
This paper introduces a new type system designed for safe systems programming. The type system features a new mutability model that combines unboxed types with a consistent typing ...
Swaroop Sridhar, Jonathan S. Shapiro, Scott F. Smi...