Publication View

The generic HASKELL user's guide : version 0.99 - Amber release (2001)

Abstract
Software development often consists of designing datatypes around which functionality is added. Some functionality is datatype specific, whereas other functionality is defined on almost all datatypes in such a way that it depends only on the structure of the datatype. A function that works on many datatypes in this way is called a generic (or polytypic) function. Examples of generic functionality include storing a value in a database, editing a value, comparing two values for equality, and pretty-printing a value. Since datatypes often change and new datatypes are introduced, we have developed Generic HASKELL which supports generic definitions to save the programmer from (re)writing instances of generic functions. Generic HASKELL extends the functional programming language Haskell [5] with, among other things, a construct for defining type-indexed values with kind-indexed types, based on recent work by Hinze [2]. These values can be specialised to all Haskell datatypes, facilitating wider application of generic programming than provided by earlier systems such as PolyP [4].

Publication details
Download http://igitur-archive.library.uu.nl/math/2002-0308-091619/UUindex.html
Repository DSpace at Utrecht University (Netherlands)
Keywords Wiskunde en Informatica
Type Preprint
Language English

Cited publications (2)
Universes for Generic Programs and Proofs (2003)
PolyP - a polytypic programming language extension (1998)