In the last few years a considerable number of approaches to generic
programming have been developed, each with its strengths and weaknesses.
Rather than comparing these approaches by examining the points in which
they differ, in this talk we aim to discover their commonalities, and
suggest further steps that can help increase the reachable level of