QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
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
A Strafunski Application Letter
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A pattern for almost compositional functions
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
RepLib: a library for derivable type classes
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
A generic recursion toolbox for Haskell or: scrap your boilerplate systematically
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Finding Inputs that Reach a Target Expression
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
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 lightweight approach to datatype-generic rewriting
Proceedings of the ACM SIGPLAN workshop on Generic programming
Generic programming with fixed points for mutually recursive datatypes
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Alloy: fast generic transformations for Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Programming Errors in Traversal Programs Over Structured Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Libraries for generic programming in haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Supercompilation by evaluation
Proceedings of the third ACM Haskell symposium on Haskell
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
A lightweight approach to datatype-generic rewriting
Journal of Functional Programming
Algebraic Specialization of Generic Functions for Recursive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Template your boilerplate: using template haskell for efficient generic programming
Proceedings of the 2012 Haskell Symposium
A generic abstract syntax model for embedded languages
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Usage of generic programming on hackage: experience report
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Programming errors in traversal programs over structured data
Science of Computer Programming
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Generic traversals over recursive data structures are often referred to as boilerplate code. The definitions of functions involving such traversals may repeat very similar patterns, but with variations for different data types and different functionality. Libraries of operations abstracting away boilerplate code typically rely on elaborate types to make operations generic. The motivating observation for this paper is that most traversals have value-specific behaviour for just one type. We present the design of a new library exploiting this assumption. Our library allows concise expression of traversals with competitive performance.