Standard ML employs an opaque (or generative) semantics of datatypes, in which every datatype declaration produces a new type that is different from any other type, including othe...
Joseph Vanderwaart, Derek Dreyer, Leaf Petersen, K...
Beginning with BETA, a range of programming language mechanisms such as virtual classes (class-valued attributes of objects) have been developed to allow inheritance in the presen...
Dave Clarke, Sophia Drossopoulou, James Noble, Tob...
In object-oriented programming, unique permissions to object references are useful for checking correctness properties such as consistency of typestate and noninterference of conc...
Karl Naden, Robert Bocchino, Jonathan Aldrich, Kev...
A software product line (SPL) is a set of software systems with well-defined commonalities and variabilities that are developed by managed reuse of common artifacts. In this pape...
Type-based reasoning is popular in functional programming. In particular, parametric polymorphism constrains functions in such a way that statements about their behavior can be de...
Jan Christiansen, Daniel Seidel, Janis Voigtlä...