Changelog for reflection-1.4
- Changed the behavior of the $(1) template haskell splices for Exp to use a Proxy rather than value-level numbers. This is more consistent with the role of this libraary and the other could always be generated via sa splice anyways.
- Added a workaround for changes in the behavior of the internal 'Magic' datatype under the current GHC PolyKinds implementation.
- Merged some functionality from Data.Analytics.Reflection. Notably the ability to use type nats to reflect numbers, and to splice numbers directly. This reduces orphan instances somewhat.
- Fixed an issue caused by changes in GHC 7.7's typechecker by using explicit
- Relaxed an unnecessary strictness annotation in the fast implementation
- 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.
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.
reflect are about 3 orders of magnitude faster than the special case
- Generalized the type signatures in reflect to allow you to pass any type
* -> * wrapped around the desired type as the phantom type
argument rather than just a
- Converted from
Data.Tagged to using
Data.Proxy for reflection. This
reduces the need for helper functions and scoped type variables in user