úÎA    n2009-2013 Edward Kmett, 2012 Elliott Hird, 2004 Oleg Kiselyov and Chung-chieh ShanBSD3Edward Kmett <ekmett@gmail.com> experimental non-portable Trustworthy'(23468<=FHJKM This is a version of % that allows for only a single value.!This is easier to work with than i and permits extended defaulting, but it only offers a single reflected value of a given type at a time.:Recover the value of a given type previously encoded with  .Recover a value inside a . context, given a proxy for its reified type.6Reify a value at the type level, to be recovered with . 4Reify a value into an instance to be recovered with .You should only  p a single value for each type. If multiple instances are in scope, then the behavior is implementation defined. [This can be used to generate a template haskell splice for a type level version of a given  .ÅThis does not use GHC TypeLits, instead it generates a numeric type by hand similar to the ones used in the "Functional Pearl: Implicit Configurations" paper by Oleg Kiselyov and Chung-Chieh Shan.instance Num (Q Exp)) provided in this package allows writing $(3) instead of $(int 3)S. Sometimes the two will produce the same representation (if compiled without the -DUSE_TYPE_LITS preprocessor directive).  This is a restricted version of  ï that can only generate natural numbers. Attempting to generate a negative number results in a compile time error. Also the resulting sequence will consist entirely of Z, D, and SD constructors representing the number in zeroless binary. HThis permits the use of $(5) as an expression splice, which stands for Proxy :: Proxy $(5) .This permits the use of $(5) as a type splice."    !       !"      !"reflection-1.5.1.1Data.ReflectionPDSDDZGivengivenReifiesreflectreifygiveintnat$fNumExp $fNumTypeGiftMagicretagDretagSDretagPD onProxyType1 onProxyType2addProxymulProxysubProxy $fFractionalQ$fNumQ$fReifies*PDInt$fReifies*SDInt$fReifies*DInt$fReifies*ZInt$fReifiesSymboln[]$fReifiesNatnInteger