reflection-2.1.8: Reifies arbitrary terms into types that can be reflected back into terms
This package addresses the configuration problem which is
propagating configurations that are available at run-time, allowing
multiple configurations to coexist without resorting to mutable
global variables or unsafePerformIO
.
That package is an implementation of the ideas presented in the paper "Functional Pearl: Implicit Configurations" by Oleg Kiselyov and Chung-chieh Shan (original paper). However, the API has been streamlined to improve performance.
There are a handful of tutorials on how to use this library:
- Austin Seipp's tutorial Reflecting values to types and back provides a summary of the approach taken by this library, along with more motivating examples.
- Arnaud Spiwack's tutorial All about reflection explains how to use this library.
- Data