module Network.Pushbullet.Reflection ( Demote' , Demote , Reflected , Reflect(..) , KProxy(..) ) where import Data.Proxy type family Demote' (p :: KProxy k) :: k -> * type Demote (a :: k) = Demote' ('KProxy :: KProxy k) type Reflected a = Demote a a class Reflect a where reflect :: proxy a -> Reflected a