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