Fighting Bit Rot with Types (Experience Report: Scala Collections)

Martin Odersky, EPFL Lausanne Adriaan Moors, K.U. Leuven

FSTTCS 2009, December 2009
Leibniz International Proceedings in Informatics (LIPIcs),


We report on our experiences in redesigning Scala's collection libraries, focusing on the role that type systems play in keeping software architectures coherent over time. Type systems can make software architecture more explicit but, if they are too weak, can also cause code duplication. We show that code duplication can be avoided using two of Scala's type constructions: higher-kinded types and implicit parameters and conversions.


in .pdf

BibTeX Entry

  author =	{Martin Odersky and Adriaan Moors},
  title =	{Fighting bit Rot with Types (Experience Report: Scala Collections)},
  booktitle =	{IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2009)},
  pages =	{427--451},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-13-2},
  ISSN =	{1868-8969},
  year =	{2009},
  volume =	{4},
  editor =	{Ravi Kannan and K Narayan Kumar},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-23386},
  doi =		{},
  annote =	{Keywords: Programming languages, scala, avoiding code duplication, higher-order kinds, type systems, polymorphism, collections library}

Martin Odersky