Programs designed from scratch often start with just a set of classes. Classes can be instantiated and so deliver the objects that are the carriers of information and function. In...
A type-based approach to termination uses sized types: an ordinal bound for the size of a data structure is stored in its type. A recursive function over a sized type is accepted i...
We develop a system of type assignment with intersection types, union types, indexed types, and universal and existential dependent types that is sound in a call-by-value functiona...
Functional logic overloading is a novel approach to userdefined overloading that extends Haskell's concept of type classes in significant ways. Whereas type classes are conce...
Matthias Neubauer, Peter Thiemann, Martin Gasbichl...
The Hindley/Milner type system has been widely adopted as a basis for statically typed functional languages. One of the main reasons for this is that it provides an elegant comprom...