RepLib: Generic programming library with representation types

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Generic programming library providing structural polymorphism and other features.

[Skip to Readme]


Versions 0.2.1, 0.2.2, 0.3, 0.4.0, 0.5, 0.5.1, 0.5.2,, 0.5.3,,,,,, 0.5.4,,
Change log None available
Dependencies base (>=4.3 && <5), containers (>=0.4 && <0.6), mtl (>=2.0 && <2.3), template-haskell (>=2.4 && <2.15), transformers, type-equality (>= && <0.2) [details]
License BSD-3-Clause
Author Stephanie Weirich
Maintainer Stephanie Weirich <>
Category Generics
Home page
Source repo head: git clone
Uploaded by sweirich at 2018-10-15T09:52:03Z


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for RepLib-

[back to package description]
-- Copyright   :  (c) 2006-2015, RepLib team (see LICENSE)
-- License     :  BSD
-- Maintainer  :
-- Stability   :  experimental
-- Portability :  non-portable
-- RepLib 
--    a library of derivable type classes based on representation types

This library contains the following modules:

Generics.RepLib.R           - Basic type representations
Generics.RepLib.R1          - Parameterized type representations
Generics.RepLib.Derive      - Template Haskell code to automatically derive 
                              representations of datatypes.
Generics.RepLib.PreludeReps - Reps of Prelude types
Generics.RepLib.RepAux      - Helper functions to define type-indexed functions

Generics.RepLib.Lib         - Examples of specializable type-indexed functions
Generics.RepLib.PreludeLib  - Examples type-indexed functions from prelude

Generics.RepLib.SYB.Aliases - SYB: Port of Data.Generics.Aliases
Generics.RepLib.SYB.Schemes - SYB: Port of Data.Generics.Schemes

RepLib                      - Top-level module that re-exports all of the above

To use this library, import RepLib and derive representations of your
datatypes. The "Lib" module contains a number of type-indexed
operations that have been predefined.  

Currently, representations of datatypes with record components, GADTs and
nested datatypes cannot be automatically derived.