Prototyping Generic Programming using Template Haskell

The design space of generic programming languages is largely unexplored, partly due to the time and effort required to implement such a language. In this paper we show how to write flexible prototype implementations of two existing generic programming languages, PolyP and Generic Haskell, using Template Haskell

The original template haskell paper showed how to wrtie printf and zipN, which are (or used to be) cited as dependent type examples -- what other haskell
extensions can we write without compiler hacking?

user error: The total number of locks exceeds the lock table size
query: INSERT INTO accesslog (title, path, url, hostname, uid, timestamp) values('Prototyping Generic Programming using Template Haskell', 'node/423', '', '35.191.3.68', 0, 1714646741) in /home/ltu/www/includes/database.mysql.inc on line 66.

Fatal error: The total number of locks exceeds the lock table size query: INSERT INTO watchdog (uid, type, message, severity, link, location, hostname, timestamp) VALUES (0, 'php', 'The total number of locks exceeds the lock table size query: INSERT INTO accesslog (title, path, url, hostname, uid, timestamp) values('Prototyping Generic Programming using Template Haskell', 'node/423', '', '35.191.3.68', 0, 1714646741) in /home/ltu/www/includes/database.mysql.inc on line 66.', 2, '', '/node/423', '35.191.3.68', 1714646741) in /home/ltu/www/includes/database.mysql.inc on line 66