Abstract
How can we enumerate the inhabitants of an algebraic datatype? This paper explores a datatype generic solution that works for all regular types and indexed families. The enumerators presented here are provably both complete and unique - they will eventually produce every value exactly once - and fair - they avoid bias when composing enumerators. Finally, these enumerators memoise previously enumerated values whenever possible, thereby avoiding repeatedly recomputing recursive results.
Original language | English |
---|---|
Article number | 105 |
Number of pages | 27 |
Journal | Proceedings of the ACM on Programming Languages |
Volume | 6 |
Issue number | ICFP |
DOIs | |
Publication status | Published - 2022 |
Keywords
- Agda
- datatype generic programming
- dependently typed programming
- interactive proof assistants
- property-based testing