Skip to main content

Scala for Generic Programmers

Bruno Oliveira and Jeremy Gibbons


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.

Victoria‚ BC
Book Title
Workshop on Generic Programming
Ralf Hinze