Towards Getting Generic Programming Ready for Prime Time
Alexey Rodriguez Yakushev
Abstract
Alexey Rodriguez Yakushev
Abstract
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed-point view as introduced by PolyP in order to support systems of mutually recursive datatypes. The new improved view allows us to define generic functions that were previously usable only on regular datatypes. Such examples of generic functions include the zipper, generic rewriting and fold. This thesis explores the problem of generic rewriting and that of extending a datatype with a meta-variable case without modifying its definition. We also compare various approaches to generic programming in Haskell. Finally, we apply generic programming to the problem of generating well-typed terms.
OpenAlex reports 52 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed-point view as introduced by PolyP in order to support systems of mutually recursive datatypes. The new improved view allows us to define generic functions that were previously usable only on regular datatypes. Such examples of generic functions include the zipper, generic rewriting and fold. This thesis explores the problem of generic rewriting and that of extending a datatype with a meta-variable case without modifying its definition. We also compare various approaches to generic programming in Haskell. Finally, we apply generic programming to the problem of generating well-typed terms.
Key concepts: Generic programming, Rewriting, Haskell, Computer science, Programming language, USable, Zipper, Functional programming