This paper introduces a new recursion principle for inductive data modulo -equivalence of bound names. It makes use of Oderskystyle local names when recursing over bound names. It...
Every program tells a story. Programming, then, is the art of constructing a story about the objects in the program and what they do in various situations. So-called programming l...
Run-time type dispatch enables a variety of advanced optimization techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, and fla...
The theory of cut-free sequent proofs has been used to motivate and justify the design of a number of logic programming languages. Two such languages, Prolog and its linear logic ...
Monads are commonplace programming devices that are used to uniformly structure computations with effects such as state, exceptions, and I/O. This paper further develops the monad...
Neil Ghani, Patricia Johann, Tarmo Uustalu, Varmo ...