A comparison of c++ concepts and haskell type classes

Jean-Philippe Bernardy, Patrik Jansson, Marcin Zalewski, Sibylle Schupp, Andreas P. Priesnitz. A comparison of c++ concepts and haskell type classes. In Ralf Hinze, Don Syme, editors, Proceedings of the ACM SIGPLAN Workshop on Genetic Programming, WGP 2008, Victoria, BC, Canada, September 20, 2008. pages 37-48, ACM, 2008. [doi]

Abstract

Earlier studies have introduced a list of high-level evaluation criteria to assess how well a language supports generic programming. Since each language that meets all criteria is considered generic, those criteria are not fine-grained enough to differentiate between languages for generic programming. We refine these criteria into a taxonomy that captures differences between type classes in Haskell and concepts in C++, and discuss which differences are incidental and which ones are due to other language features. The taxonomy allows for an improved understanding of language support for generic programming, and the comparison is useful for the ongoing discussions among language designers and users of both languages.