packages feed

purescript-0.14.0: tests/purs/passing/Rank2Kinds.purs

module Main where

import Effect.Console (log)

data A (a :: forall k. k -> Type) = A

data B :: (forall k. k -> Type) -> Type
data B a = B

data Pair a b = Pair
data Proxy a = Proxy

type Id a = a
type MkP (f :: forall k. k -> k) =  Pair (f Int) (f "foo")

k :: forall a b. Proxy (Pair Int "foo") -> Int
k _ = 42

test = k (Proxy :: Proxy (MkP Id))

main = log "Done"