This paper introduces a novel approach to datatype-generic programming based on type classes and type families. It is fairly easy to use, is very expressive, and incurs minimal overhead over handwritten datatype-specific code.
I research and teach programming languages, compilers, and their applications at the University of New South Wales (UNSW), Sydney. My main interest is in functional and parallel programming. Most of my code is in Haskell.