Generic programming in 3D
Ralf Hinze and Andres Löh

Support for generic programming consists of three essential ingredients: support for overloaded functions, a run-time type representation, and a generic view on data. Different approaches to datatype-generic programming occupy different points in this design space. In this article, we revisit the ``Scrap your boilerplate'' approach and identify its location within the three-dimensional design space. The characteristic features of ``Scrap your boilerplate'' are its two generic views, the `spine' view for consuming and transforming data, and the `type-spine' view for producing data. We show how to combine these views with different overloading mechanisms and type representations.

A journal version of this article appeared in Science of Computer Programming, Volume 74, Issue 8, 1 June 2009, Pages 590–628.

Valid XHTML 1.0! Valid CSS!

Andres Löh, 2008-01-14