Generic programming with C++ concepts and Haskell type classes—a comparison
Journal article, 2010

Earlier studies have introduced a list of high-level evaluation criteria to assess how well a language supports generic programming. Languages that meet all criteria include Haskell, because of its type classes, and C++ with the concept feature. We refine these criteria into a taxonomy that captures commonalities and 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.

Software Engineering

Type Classes

Specification Driven Software Development

Author

Jean-Philippe Bernardy

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Patrik Jansson

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering and Technology (Chalmers)

Marcin Zalewski

Indiana University

Sibylle Schupp

Technical University of Hamburg (TUHH)

Journal of Functional Programming

0956-7968 (ISSN) 1469-7653 (eISSN)

Vol. 20 3-4 271-302

Subject Categories

Software Engineering

Computer Science

DOI

10.1017/S095679681000016X