Generic Views On Data Types
Stc
Date: 2006-06-22
Time: 11:45
Room: BBL room 471
Title: Generic Views on Data Types
Abstract
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.