{-# LANGUAGE CPP #-} {- | Injection from algebraic kinds to * Algebraic kinds like Nat are not populated and we can't use values of type Nat as function arguments. In contrast, we can use (undefined :: Proxy Z) as an argument, as a value proxy. data Proxy (tp :: k) :: * re-exports 'Data.Typeable.Proxy' if it exists -} module Data.HList.FakePrelude.Proxy (Proxy, proxy) where #if MIN_VERSION_base(4,7,0) import Data.Typeable (Proxy(..)) #else data Proxy tp #endif proxy :: Proxy tp proxy = undefined