Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2000
DOI: 10.1145/325694.325709
|View full text |Cite
|
Sign up to set email alerts
|

A new approach to generic functional programming

Abstract: This paper describes a new approach to generic functional programming, which allows us to define functions generically for all datatypes expressible in Haskell. A generic function is one that is defined by induction on the structure of types. Typical examples include pretty printers, parsers, and comparison functions.The advanced type system of Haskell presents a real challenge: datatypes may be parameterized not only by types but also by type constructors, type definitions may involve mutual recursion, and re… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
61
0

Year Published

2000
2000
2016
2016

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 100 publications
(61 citation statements)
references
References 24 publications
0
61
0
Order By: Relevance
“…For algebraic datatypes, we expect it should be straightforward to extend our theory using ideas from generic programming as in [8], while first-order functions could be handled by representing functions using tries as in the improved Lazy Smallcheck [15]. Another interesting area to explore is dependent type theory.…”
Section: Discussionmentioning
confidence: 99%
“…For algebraic datatypes, we expect it should be straightforward to extend our theory using ideas from generic programming as in [8], while first-order functions could be handled by representing functions using tries as in the improved Lazy Smallcheck [15]. Another interesting area to explore is dependent type theory.…”
Section: Discussionmentioning
confidence: 99%
“…This is a well-studied problem, and a variety of approaches have been proposed (Hinze 2000;Peyton Jones 2003, 2004;Löh 2004;Visser 2005;Rodriguez et al 2008;Yakushev et al 2009;Magalhães et al 2010). This section describes one such approach to the problem: the Kansas University Rewrite Engine (KURE), a Haskell-embedded domain-specific language for strategic rewriting.…”
Section: Strategic Rewritingmentioning
confidence: 99%
“…The original work of Hinze enabled independent generic functions to be written in a natural recursive style [15], though such functions could only be written for fixed kinds such as or → . Hinze [16] then lifted this restriction.…”
Section: Type and Kind Checkingmentioning
confidence: 99%
“…This facilitates the automatic overloading of certain functions for datatypes which have the deriving clause specified. Hinze and Peyton Jones explore an extension, following Hinze's earlier ideas [15], which integrated generics with Haskell's type class system [20]. This system suffers from some limitations due to the interaction with the type class system.…”
Section: Related Workmentioning
confidence: 99%