Abstract. Generic Programming deals with the construction of programs that can be applied to many dierent datatypes. This is achieved by parameterizing the generic programs by the structure of the datatypes on which they are to be applied. Programs that can be dened generically range from simple map functions through pretty printers to complex XML tools. The design space of generic programming languages is largely unexplored, partly due to the time and eort required to implement such a language. In this paper we show how to write exible prototype implementations of two existing generic programming languages, PolyP and Generic Haskell, using Template Haskell, an extension to Haskell that enables compile-time meta-programming. In doing this we also gain a better understanding of the dierences and similarities between the two languages.