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...
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...
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...
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...
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...