2004
DOI: 10.1007/s00165-003-0013-6
|View full text |Cite
|
Sign up to set email alerts
|

Disciplined, efficient, generalised folds for nested datatypes

Abstract: Abstract. Nested (or non-uniform, or non-regular) datatypes have recursive definitions in which the type parameter changes. Their folds are restricted in power due to type constraints. Bird and Paterson introduced generalised folds for extra power, but at the cost of a loss of efficiency: folds may take more than linear time to evaluate. Hinze introduced efficient generalised folds to counter this inefficiency, but did so in a pragmatic way: he did not provide categorical or equivalent underpinnings, so did no… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
21
0

Year Published

2004
2004
2017
2017

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 25 publications
(21 citation statements)
references
References 11 publications
0
21
0
Order By: Relevance
“…In particular, map functions and relators are missing and can be difficult to add. c) Other Work: The pioneering work of Bird and his collaborators on nonuniform datatypes [7], [8], [9] has been extended into several directions, including structures for efficient functional programming [23], [24], [30], datatypes with references [16], as well as work directly relevant for DTT proof assistants: reduction to W-types and container types [1], typed term rewriting frameworks for total programming [2], [3], [31], intensional-DTT induction [32]. Our current contribution was concerned with bootstrapping nonuniform datatypes in HOL on a sound and compositional basis.…”
Section: )mentioning
confidence: 99%
“…In particular, map functions and relators are missing and can be difficult to add. c) Other Work: The pioneering work of Bird and his collaborators on nonuniform datatypes [7], [8], [9] has been extended into several directions, including structures for efficient functional programming [23], [24], [30], datatypes with references [16], as well as work directly relevant for DTT proof assistants: reduction to W-types and container types [1], typed term rewriting frameworks for total programming [2], [3], [31], intensional-DTT induction [32]. Our current contribution was concerned with bootstrapping nonuniform datatypes in HOL on a sound and compositional basis.…”
Section: )mentioning
confidence: 99%
“…However, the use of nested datatypes, complicates the definition of the generic combinators. Folds for cyclic stream and tree structures require higher-ranked types [32] (as usual for nested datatypes [5,25]) and they suggest that in a datatype-generic version one-hole contexts [1] are also needed, adding extra complexity to the approach.…”
Section: Related Workmentioning
confidence: 99%
“…However, truly nested datatypes are not accepted as inductive definitions in the theorem prover Coq [23] since they are considered to violate the condition of strict positivity [6, Section 14.1.2.1]. This is certainly accepted due to the fact that there are not yet type-theoretical formulations of the reasoning principles for the proposed means of structured programming for these datatypes [8,12,17].…”
Section: Definitionmentioning
confidence: 99%
“…For nested datatypes, there are the "hofunctors" [8,17]. Generic Haskell [14,16] goes further up the hierarchy and allows all finite kinds.…”
Section: Future Work and Conclusionmentioning
confidence: 99%