Like programs, programming languages are not only mathematical objects but also software engineering artifacts. Describing the semantics of real-world languages can help bring lan...
Haskell's type classes allow ad-hoc overloading, or typeindexing, of functions. A natural generalisation is to allow type-indexing of data types as well. It turns out that th...
Manuel M. T. Chakravarty, Gabriele Keller, Simon L...
ML modules and Haskell type classes have proven to be highly effective tools for program structuring. Modules emphasize explicit configuration of program components and the use of...
Manuel M. T. Chakravarty, Gabriele Keller, Simon L...
Type-preserving compilation can improve software reliability by generating code that can be verified independently of the compiler. Practical type-preserving compilation does not ...
An important aspect of developing models relating the number and type of faults in a software system to a set of structural measurement is defining what constitutes a fault. By de...