1module Main where 2 3import Effect.Console (log) 4 5data A (a :: forall k. k -> Type) = A 6 7data B :: (forall k. k -> Type) -> Type 8data B a = B 9 10data Pair a b = Pair 11data Proxy a = Proxy 12 13type Id a = a 14type MkP (f :: forall k. k -> k) = Pair (f Int) (f "foo") 15 16k :: forall a b. Proxy (Pair Int "foo") -> Int 17k _ = 42 18 19test = k (Proxy :: Proxy (MkP Id)) 20 21main = log "Done" 22