The typeparams package

This library provides a lens-like interface for working with type parameters. In the code:

data Example p1 (p2::Config Nat) (p3::Constraint) = Example

p1, p2, and p3 are the type parameters.

Two example uses of this library are for unboxing unboxed vectors and supercompilation-like optimizations. Please see the README file on github for a detailed description and tutorial. After reading through that, the haddock documentation will make more sense.