summaryrefslogtreecommitdiff
path: root/testsuite/tests/polykinds/T12593.hs
blob: 867fb892841c375aeb68062f61ee394f86d71771 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, TypeInType,  KindSignatures, RankNTypes #-}

module T12593 where

import Data.Kind

newtype Free k p a b where
   Free :: (forall q. k q => (forall c d. p c d -> q c d) -> q a b)
        -> Free k p a b

run :: k2 q => Free k k1 k2 p a b
             -> (forall (c :: k) (d :: k1). p c d -> q c d)
             -> q a b
run (Free cat) = cat