|Maintainer||Edward Kmett <email@example.com>|
Reifies arbitrary terms at the type level. Based on the Functional Pearl: Implicit Configurations paper by Oleg Kiselyov and Chung-chieh Shan.
The approach from the paper was modified to work with Data.Proxy and to cheat by using knowledge of GHC's internal representations by Edward Kmett and Elliott Hird.
reify 6 (\p -> reflect p + reflect p)12
The argument passed along by reify is just a
data , so all of the information needed to reconstruct your value
has been moved to the type level. This enables it to be used when
constructing instances (see
Proxy t =
In addition, a simpler API is offered for working with singleton values such as a system configuration, etc.
Reify a value at the type level, to be recovered with
This is a version of
Reifies that allows for only a single value.
This is easier to work with than
Reifies and permits extended defaulting,
but it only offers a single reflected value of a given type at a time.