packages feed

servant-pushbullet-client-0.0.2.0: src/Network/Pushbullet/Reflection.hs

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