polydata-core (hackage): This package, with assistance of the package polydata, allows one to pass data, particularly functions, together with a constraint which describes how polymorphic that data is. This constraint can then be used in a generic way to produce quite polymorphic functions, for example, a "map" function that works on a pair of two different types.  See Data.Poly for a basic tutorial.  This package is separate from polydata to reduce dependencies, however if you want to do anything non-trivial you'll probably want to use the constraint manipulation tools in polydata. However, if you have your own way of manipulating constraints, you could just use this package directly and only.
Keywords: bsd3|library|web