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