blob: 8fd4f26578e4bb5ec1745f2df17a929337f95d20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, 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
|