@inproceedings{,
  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.",
  author = "Bruno C. d. S. Oliveira and Jeremy Gibbons",
  booktitle = "Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'08)",
  editor = "Ralf Hinze",
  journal = "Workshop in Generic Programming",
  month = "July",
  title = "Scala for Generic Programmers",
  url = "http://web.comlab.ox.ac.uk/people/Bruno.Oliveira/ScalaGeneric.pdf",
  year = "2008",
}

