-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Functional Pearl: Implicit Configurations
--
-- Implementation of the code in Functional Pearl: Implicit
-- Configurations by Oleg Kiselyov and Chung-chieh Shan
@package reflection
@version 0.0.0
-- | Implementation of the Functional Pearl: Implicit Configurations paper
-- by Oleg Kiselyov and Chung-chieh Shan.
--
-- http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf
--
-- Packaged and updated to work with the current implementation of scoped
-- type variables by Edward Kmett.
module Data.Reflection
class ReflectNum s
reflectNum :: (ReflectNum s, Num a) => s -> a
reflectNum :: (ReflectNum s, Num a) => s -> a
reifyIntegral :: (Integral a) => a -> (forall s. (ReflectNum s) => s -> w) -> w
class ReflectNums ss
reifyIntegrals :: (Integral a) => [a] -> (forall ss. (ReflectNums ss) => ss -> w) -> w
class ReflectStorable s
reflectStorable :: (ReflectStorable s, Storable a) => s a -> a
reflectStorable :: (ReflectStorable s, Storable a) => s a -> a
reifyStorable :: (Storable a) => a -> (forall s. (ReflectStorable s) => s a -> w) -> w
class Reflect s a | s -> a
reflect :: (Reflect s a) => s -> a
reflect :: (Reflect s a) => s -> a
reify :: a -> (forall s. (Reflect s a) => s -> w) -> w
instance (ReflectStorable s) => Reflect (Stable s a) a
instance (ReflectNums s) => ReflectStorable (Store s)
instance (ReflectNum s, ReflectNums ss) => ReflectNums (Cons s ss)
instance ReflectNums Nil
instance (ReflectNum s) => ReflectNum (Pred s)
instance (ReflectNum s) => ReflectNum (Succ s)
instance (ReflectNum s) => ReflectNum (Twice s)
instance ReflectNum Zero