Departmental Papers (CIS)

Date of this Version

September 2006

Document Type

Conference Paper


Postprint version. Published in Proceedings of the 2006 ACM SIGPLAN workshop on Haskell, September 2006, pages 1-12.
Publisher URL:


Some type class instances can be automatically derived from the structure of types. As a result, the Haskell language includes the deriving mechanism to automatic generates such instances for a small number of built-in type classes. In this paper, we present RepLib, a GHC library that enables a similar mechanism for arbitrary type classes. Users of RepLib can define the relationship between the structure of a datatype and the associated instance declaration by a normal Haskell functions that pattern-matches a representation types. Furthermore, operations defined in this manner are extensible-instances for specific types not defined by type structure may also be incorporated. Finally, this library also supports the definition of operations defined by parameterized types.


generic programming, representation type, Haskell, type class



Date Posted: 04 March 2008

This document has been peer reviewed.