2006
DOI: 10.1017/s0956796806006022
|View full text |Cite
|
Sign up to set email alerts
|

Generics for the masses

Abstract: A generic function is a function that can be instantiated on many data types to obtain data type specific functionality. Examples of generic functions are the functions that can be derived in Haskell, such as show, read, and ‘==’. The recent years have seen a number of proposals that support the definition of generic functions. Some of the proposals define new languages, some define extensions to existing languages. As a common characteristic none of the proposals can be made to work within Haskell 98: they al… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
24
0

Year Published

2007
2007
2019
2019

Publication Types

Select...
5
4

Relationship

1
8

Authors

Journals

citations
Cited by 44 publications
(24 citation statements)
references
References 34 publications
(31 reference statements)
0
24
0
Order By: Relevance
“…Modular interpretations are also possible in Haskell via a variant of Church encodings that uses type classes. The original technique is due to Hinze [9] and was shown to be 10:12 modular and extensible by Oliveira, Hinze and Löh [16]. It has since been popularized under the name Finally Tagless [2] in the context of embedded DSLs.…”
Section: Modular Interpretations In Haskellmentioning
confidence: 99%
“…Modular interpretations are also possible in Haskell via a variant of Church encodings that uses type classes. The original technique is due to Hinze [9] and was shown to be 10:12 modular and extensible by Oliveira, Hinze and Löh [16]. It has since been popularized under the name Finally Tagless [2] in the context of embedded DSLs.…”
Section: Modular Interpretations In Haskellmentioning
confidence: 99%
“…This is a sum-of-products representation similar to that proposed by Hinze [2006]. Algebraic data types can be uniformly viewed in this way: choice between constructor variants is encoded as (potentially nested) binary sums (:+:).…”
Section: Generic Programmingmentioning
confidence: 99%
“…Magalhães [2014] considered multiple parameters, but has a different solution to ours and is less flexible. Our method is to use the generic structure of data, which was prominently investigated by Hinze [2006], and has led to an implementation in GHC that allows generic type classes to be derived [Magalhães et al 2010]. GHC.Generics was intended to be a low-level way for library authors to implement generic programming libraries.…”
Section: Related Workmentioning
confidence: 99%
“…Hinze [14] describes a library for generic programming in Haskell with a type class that corresponds quite closely to the TYPE signature of §2, except that the types described are Haskell's, not the types of a foreign language. There is a close connection between Haskell's type classes and ML's modules, and so Karvonen's implementation of Hinze's approach in ML [15] corresponds even more directly to this aspect of Cmeleon's design.…”
Section: Influences and Related Workmentioning
confidence: 99%