Generic programming is about making programs more widely applicable via exotic kinds of parametrization---not just along the dimensions of values or of types, but also of things such as the shape of data, algebraic
structures, strategies, computational paradigms, and so on. Indexed programming is a ...