2006Utrecht University Repository (Utrecht University)Open access

The Generic Haskell user's guide, Version 1.60 - Diamond release

Andres Löh, Johan Jeuring, Alexey Rodriguez

Open full text 0 citations

Abstract

Software development often consists of designing datatypes around which functionality is \nadded. Some functionality is datatype specific, whereas other functionality is defined on \nalmost all datatypes in a way that depends only on the structure of the datatype. A function \nthat works on many datatypes in this manner is called a generic (or polytypic) function. \nExamples of generic functionality include editing, pretty-printing or storing a value in a \ndatabase, and comparing two values for equality. \nSince datatypes often change and new datatypes are introduced, we have developed Generic \nH ASKELL, an extension of the functional programming language Haskell [11] that supports \ngeneric definitions, to save the programmer from (re)writing instances of generic functions. \nThe original design of Generic H ASKELL is based on work by Ralf Hinze [3]. The current \nrelease is based on recent work by Dave Clarke, Johan Jeuring and Andres L¨oh [10, 9]. It \nextends Haskell with, among other things, a construct for defining type-indexed values. These \nvalues can be specialised to all Haskell datatypes, facilitating wider application of generic \nprogramming than provided by earlier systems such as PolyP [8].

About this research paper

What this paper is about

Software development often consists of designing datatypes around which functionality is \nadded. Some functionality is datatype specific, whereas other functionality is defined on \nalmost all datatypes in a way that depends only on the structure of the datatype. A function \nthat works on many datatypes in this manner is called a generic (or polytypic) function. \nExamples of generic functionality include editing, pretty-printing or storing a value in a \ndatabase, and comparing two values for equality. \nSince datatypes often change and new datatypes are introduced, we have developed Generic \nH ASKELL, an extension of the functional programming language Haskell [11] that supports \ngeneric definitions, to save the programmer from (re)writing instances of generic functions. \nThe original design of Generic H ASKELL is based on work by Ralf Hinze [3]. The current \nrelease is based on recent work by Dave Clarke, Johan Jeuring and Andres L¨oh [10, 9]. It \nextends Haskell with, among other things, a construct for defining type-indexed values. These \nvalues can be specialised to all Haskell datatypes, facilitating wider application of generic \nprogramming than provided by earlier systems such as PolyP [8].

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Software development often consists of designing datatypes around which functionality is \nadded. Some functionality is datatype specific, whereas other functionality is defined on \nalmost all datatypes in a way that depends only on the structure of the datatype. A function \nthat works on many datatypes in this manner is called a generic (or polytypic) function. \nExamples of generic functionality include editing, pretty-printing or storing a value in a \ndatabase, and comparing two values for equality. \nSince datatypes often change and new datatypes are introduced, we have developed Generic \nH ASKELL, an extension of the functional programming language Haskell [11] that supports \ngeneric definitions, to save the programmer from (re)writing instances of generic functions. \nThe original design of Generic H ASKELL is based on work by Ralf Hinze [3]. The current \nrelease is based on recent work by Dave Clarke, Johan Jeuring and Andres L¨oh [10, 9]. It \nextends Haskell with, among other things, a construct for defining type-indexed values. These \nvalues can be specialised to all Haskell datatypes, facilitating wider application of generic \nprogramming than provided by earlier systems such as PolyP [8].

Key concepts: Haskell, Programming language, Generic programming, Computer science, Programmer, Functional programming, Extension (predicate logic), Function (biology)

Related papers

Back to paper searchBrowse research topicsOriginal source
The Generic Haskell user's guide, Version 1.60 - Diamond release — Research Paper | ScholarLens