@inproceedings{Oliveira&Gibbons2008:Scala,
  abstract = "Datatype-generic programming involves parametrization by the shape of data, in the form of type constructors such as "list of". Most approaches to datatype-generic programming are developed in the lazy functional programming language Haskell. We argue that the functional object-oriented language Scala is in many ways a better setting. Not only does Scala provide equivalents of all the necessary functional programming features (such parametric polymorphism, higher-order functions, higher-kinded type operations,and type- and constructor-classes), but it also provides the most useful features of object-oriented languages (such as subtyping,overriding, traditional single inheritance, and multiple inheritance in the form of traits). We show how this combination of features benefits datatype-generic programming, using three different approaches as illustrations.",
  address = "Victoria, BC",
  author = "Bruno Oliveira and Jeremy Gibbons",
  booktitle = "Workshop on Generic Programming",
  editor = "Ralf Hinze",
  month = "Sep",
  title = "Scala for Generic Programmers",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/scalagp.pdf",
  year = "2008",
}

