Type classes have found a wide variety of uses in Haskell programs, from simple overloading of operators (such as equality or ordering) to complex invariants used to implement typ...
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...
GADTs are at the cutting edge of functional programming and become more widely used every day. Nevertheless, the semantic foundations underlying GADTs are not well understood. In ...
c specifications provide a powerful method for the specification of abstract data types in programming languages and software systems. Completeness and ground confluence are fundam...
In this paper we use the Epigram language to define the universe of regular tree types—closed under empty, unit, sum, product and least fixpoint. We then present a generic deci...