Remove the type-checking knot.
[ghc.git] / testsuite / tests / polykinds / T12593.hs
1 {-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, KindSignatures, RankNTypes #-}
2
3 module T12593 where
4
5 import Data.Kind
6
7 newtype Free k p a b where
8 Free :: (forall q. k q => (forall c d. p c d -> q c d) -> q a b)
9 -> Free k p a b
10
11 run :: k2 q => Free k k1 k2 p a b
12 -> (forall (c :: k) (d :: k1). p c d -> q c d)
13 -> q a b
14 run (Free cat) = cat