Home

Generic Views On Data Types

Alexey

Stefan Holdermans, Johan Jeuring, Andres Löh and Alexey Rodriguez. At the 8th International Conference on Mathematics of Program Construction 2006

A generic function is defined by induction on the structure of types. The structure of a data type can be defined in several ways. For example, in PolyP a pattern functor gives the structure of a data type viewed as a fixed point, and in Generic Haskell a structural representation type gives an isomorphic type view of a data type in terms of sums of products. Depending on this generic view on the structure of data types, some generic functions are easier, more difficult, or even impossible to define. Furthermore, the efficiency of some generic functions can be improved by choosing a different view. This paper introduces generic views on data types and shows why they are useful. Furthermore, it shows how generic views have been added to Generic Haskell, an extension of the functional programming language Haskell that supports the construction of generic functions. The separation between inductive definitions on type structure and generic views allows us to combine many approaches to generic programming in a single framework.

Paper: (pdf)

Technical report: (extended paper version) (url)

Implementation

You can obtain an implementation of Generic Views from this page.

-- AlexeyRodriguez - 02 Aug 2006