The reflection package
This package provides an implementation of the ideas presented in the paper "Functional Pearl: Implicit Configurations" by Oleg Kiselyov and Chung-chieh Shan. However, the API has been streamlined to improve performance.
The original paper can be obtained from http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf.
Changes in 1.1.5:
Both implementations now work on Hugs; the fast implementation ascends from the ranks of completely unportable black magic to being merely mostly unportable black magic.
Changes from 0.5 to 1.1:
Much faster implementation available that is about 50 times faster than 0.9 and which runs purely on black magic. This version is now used by default. To turn it off install with the slow flag. If you encounter a problem with the implementation, please contact the author.
Removed ReifiedNum, reflectNum, and reifyIntegral; reify and reflect are about 3 orders of magnitude faster than the special case combinators were.
Changes in 0.5:
Generalized the type signatures in reflect to allow you to pass any type with kind * -> * wrapped around the desired type as the phantom type argument rather than just a Proxy.
Changes in 0.4:
Converted from Data.Tagged to using Data.Proxy for reflection. This reduces the need for helper functions and scoped type variables in user code.
|Versions||0.0.0, 0.1.0, 0.1.1, 0.2.0, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.5, 0.4.0, 0.4.0.1, 0.4.0.2, 0.4.1, 0.4.1.1, 0.5, 0.5.0.1, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 184.108.40.206, 1.1.6, 1.1.7, 220.127.116.11, 1.3, 1.3.1, 1.3.2|
|Dependencies||base (≥2 & <5), tagged (≥0.2.3 & <0.5)|
|Copyright||2009-2012 Edward A. Kmett, 2012 Elliott Hird, 2004 Oleg Kiselyov and Chung-chieh Shan|
|Author||Edward A. Kmett, Elliott Hird, Oleg Kiselyov and Chung-chieh Shan|
|Maintainer||Edward A. Kmett <email@example.com>|
|Category||Data, Reflection, Dependent Types|
|Source repository||git clone git://github.com/ekmett/reflection.git|
|Upload date||Wed Apr 11 23:38:05 UTC 2012|
|Distributions||NixOS: 1.3.2, Debian: 1.1.7, FreeBSD: 1.1.7|