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

by R Lämmel, S P Jones
Venue:In ACM International Workshop on Types in Language Design and Implementation