module Dahdit.Proxy ( proxyFor , proxyForF , proxyForFun , proxyForNatF ) where import Data.Proxy (Proxy (..)) import GHC.TypeLits (Nat) proxyFor :: a -> Proxy a proxyFor :: forall a. a -> Proxy a proxyFor a _ = forall {k} (t :: k). Proxy t Proxy proxyForF :: f a -> Proxy a proxyForF :: forall (f :: * -> *) a. f a -> Proxy a proxyForF f a _ = forall {k} (t :: k). Proxy t Proxy proxyForFun :: (a -> x) -> Proxy a proxyForFun :: forall a x. (a -> x) -> Proxy a proxyForFun a -> x _ = forall {k} (t :: k). Proxy t Proxy proxyForNatF :: forall (n :: Nat) f. f n -> Proxy n proxyForNatF :: forall (n :: Nat) (f :: Nat -> *). f n -> Proxy n proxyForNatF f n _ = forall {k} (t :: k). Proxy t Proxy