Extensible and Modular Generics for the Masses
Switch branches/tags
Nothing to show
Latest commit dc16c10 Sep 21, 2011 @spl Update copyright
Failed to load latest commit information.
examples Fix examples Nov 1, 2010
src/Generics Revert 'replace' back to its previous arg order Sep 21, 2011
README.md Update documentation Sep 21, 2011
Setup.lhs Update cabal file and Setup.lhs, incl. test-suite Sep 21, 2011


Extensible and Modular Generics for the Masses

Extensible and Modular Generics for the Masses (EMGM) is a library for generic programming in Haskell.


The primary features of EMGM include:

  • Datatype-generic programming using sum-of-product views
  • Large collection of ready-to-use generic functions
  • Included support for standard datatypes: lists, Maybe, tuples
  • Easy to add support for new datatypes
  • Type classes make writing new functions straightforward in a structurally inductive style
  • Generic functions are extensible with ad-hoc cases for arbitrary datatypes
  • Good performance of generic functions

The features of this distribution include:

  • The API is thoroughly documented with Haddock
  • Fully tested with QuickCheck and HUnit
  • Program coverage ensures that all useful code has been touched by tests


You can find examples of using EMGM in the examples directory of the source distribution.

Bugs & Support

To report bugs, use the Google Code project page for EMGM.

For general concerns and questions, use the Generics mailing list.