This site uses cookies to deliver our services and to ensure you get the best experience. By continuing to use this site, you consent to our use of cookies and acknowledge that you have read and understand our Privacy Policy, Cookie Policy, and Terms
Unfolds generate data structures, and folds consume them. A hylomorphism is a fold after an unfold, generating then consuming a virtual data structure. A metamorphism is the opposi...
In this paper we define Kleene algebra with tests in a slightly more general way than Kozen’s definition. Then we give an explicit construction of the free Kleene algebra with...
Exceptions are an important feature of modern programming languages, but their compilation has traditionally been viewed as an advanced topic. In this article we show that the basi...
A friendship system is introduced for modular static verification of object invariants. It extends a previous methodology, based on ownership hierarchy encoded in auxiliary state,...
Abstract. Datatypes which differ inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary prod...
Abstract. Generic functions are defined by induction on the structural representation of types. As a consequence, by defining just a single generic operation, one acquires this o...
The efficient representation and manipulation of data is one of the fundamental tasks in the construction of large software systems. Parametric polymorphism has been one of the mo...
Michael Abbott, Thorsten Altenkirch, Neil Ghani, C...
Abstract. Generic Programming deals with the construction of programs that can be applied to many dierent datatypes. This is achieved by parameterizing the generic programs by the...