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.