Reduce, Reuse, Recycle, Type-check. A survey of typed generic programming approaches

Vlad Vergu. Reduce, Reuse, Recycle, Type-check. A survey of typed generic programming approaches. In Eelco Visser, editor, Proceedings of the Seminar on Meta-Programming (SMP 2010). 2010.

Abstract

Generic programs are programs that provide speci c functionality applicable on generic inputs. While their functionality is speci c, their implementation is free from any application-context datatypes jail. The need for generic programming becomes evident when dealing with large forests of datatypes where some, many or all may not be known until a later stage. Use of generic programs facilitates code reuse and allows programmers to focus on the actual to-be-implemented logic rather than spending time implementing boilerplate code - for example for data structure traversals. The economic need for generic programming is clear: the invention of type safe generic programming would drastically reduce software development costs and increase maintainability of software systems.