Abstract
Datatype-generic programming is a widely used technique to define functions that work regularly over a class of datatypes. Examples include deriving serialization of data, equality or even functoriality. The state-of-the-art of generic programming still lacks handling GADTs, multiple type variables, and some other features. This paper exploits modern GHC extensions, including <pre>TypeInType</pre>, to handle arbitrary number of type variables, constraints, and existentials. We also provide an Agda model of our construction that does not require Russel’s paradox, proving the construction is consistent.
Original language | English |
---|---|
Title of host publication | Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell |
Publisher | Association for Computing Machinery |
Pages | 41-54 |
Number of pages | 14 |
ISBN (Electronic) | 9781450349116 |
ISBN (Print) | 978-1-4503-5835-4 |
DOIs | |
Publication status | Published - 17 Sept 2018 |
Keywords
- Generic programming
- Haskell