Scrap your boilerplate: a practical design pattern for generic programming (2003)

by Ralf Lämmel, Simon Peyton Jones
Venue:In Types in Language Design and Implementation