The RepLib package

[Tags: bsd3, library]

Generic programming library providing structural polymorphism, simple programming with binders, and other features.


[Skip to ReadMe]

Properties

Versions0.2.1, 0.2.2, 0.3, 0.4.0, 0.5, 0.5.1, 0.5.2, 0.5.2.1, 0.5.3, 0.5.3.1, 0.5.3.2, 0.5.3.3
Change logNone available
Dependenciesbase (>=4.3 && <5), containers (>=0.3 && <0.5), mtl (>=1.1 && <2.1), template-haskell (>=2.4 && <2.6) [details]
LicenseBSD3
AuthorStephanie Weirich
MaintainerChris Casinghino <ccasin@cis.upenn.edu> Brent Yorgey <byorgey@cis.upenn.edu> Stephanie Weirich <sweirich@cis.upenn.edu>
CategoryGenerics
Home pagehttp://code.google.com/p/replib/
UploadedTue Dec 7 22:43:47 UTC 2010 by BrentYorgey
DistributionsNixOS:0.5.3.3
Downloads2809 total (95 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for RepLib-0.3

-----------------------------------------------------------------------------
-- 
-- Copyright   :  (c) 2006-2010, RepLib team (see LICENSE)
-- License     :  BSD
-- 
-- Maintainer  :  sweirich@cis.upenn.edu, byorgey@cis.upenn.edu
-- Stability   :  experimental
-- Portability :  non-portable
--
-- RepLib 
--    a library of derivable type classes based on representation types
--
--  See http://code.google.com/p/replib/ for more information.
-----------------------------------------------------------------------------

RepLib has been tested with GHC 7.0.1.  It currently does not compile with 
GHC 6.12.x or earlier.

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

Generics.RepLib.Bind.LocallyNameless
                             - Tools for generic programming with
                               binders (alpha renaming, substitution,
                               unification, etc.)

Generics.RepLib.Bind.Nominal - Tools for generic programming with
                               binders (alternate implementation)

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.  To see an example of
automatically deriving the representation of a datatype, see the file
Main.hs.

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