@inproceedings{Gibbons2005:DesignECOOP, title = "Design Patterns as Higher-Order Datatype-Generic Programs", author = "Jeremy Gibbons", year = "2005", address = "Glasgow", booktitle = "European Conference on Object-Oriented Programming", month = "jul", note = "Later version appears as \cite{Gibbons2005:DesignOOPSLA}", url = "http://2005.ecoop.org/8.html", }