PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Typed Combinators for Generic Traversal
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
A nanopass infrastructure for compiler education
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
RepLib: a library for derivable type classes
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Uniform boilerplate and list processing
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Applicative programming with effects
Journal of Functional Programming
Comparing libraries for generic programming in haskell
Proceedings of the first ACM SIGPLAN symposium on Haskell
A pattern for almost compositional functions
Journal of Functional Programming
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
“Scrap your boilerplate” reloaded
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Communicating mobile processes
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
Template your boilerplate: using template haskell for efficient generic programming
Proceedings of the 2012 Haskell Symposium
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Data-type generic programming can be used to traverse and manipulate specific parts of large heterogeneously-typed tree structures, without the need for tedious boilerplate. Generic programming is often approached from a theoretical perspective, where the emphasis lies on the power of the representation rather than on efficiency. We describe use cases for a generic system derived from our work on a nanopass compiler, where efficiency is a real concern, and detail a new generics approach (Alloy) that we have developed in Haskell to allow our compiler passes to traverse the abstract syntax tree quickly. We benchmark our approach against several other Haskell generics approaches and statistically analyse the results, finding that Alloy is fastest on heterogeneously-typed trees.