Towards a Categorical Foundation for Generic Programming
Accepted to WGP ’11, Tokyo, Japan
PDF
|
BibTEX
Abstract
Generic Haskell is an extension of Haskell that supports
datatype-generic programming. The central idea of Generic
Haskell is to interpret a type by a function, the so-called
instance of a generic function at that type. Since types in
Haskell include parametric types such as `list of', Generic
Haskell represents types by terms of the simply-typed lambda
calculus. This paper puts the idea of interpreting types as
functions on a firm theoretical footing, exploiting the fact
that the simply-typed lambda calculus can be interpreted in a
cartesian closed category. We identify a suitable target
category, a subcategory of Cat, and argue that slice, coslice
and comma categories are a good fit for interpreting generic
functions at base types.
Keywords
Generic programming, category theory, slice category, comma category