HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Package2.1.9DataReflectionDependent Types

reflection

Reifies arbitrary terms into types that can be reflected back into terms

Modules

1 module
  • Data.Reflection23Reifies arbitrary terms at the type level. Based on the Functional

Description

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 System.IO.Unsafe.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.

Depends on

2 packages

Used by in this set · 4