T12593.hs:11:16: error: • Expected kind ‘k0 -> k1 -> *’, but ‘Free k k1 k2 p’ has kind ‘*’ • In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:31: error: • Expecting one more argument to ‘k’ Expected a type, but ‘k’ has kind ‘(((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint’ • In the kind ‘k’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:40: error: • Expecting two more arguments to ‘k1’ Expected a type, but ‘k1’ has kind ‘((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *’ • In the kind ‘k1’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:47: error: • Couldn't match kind ‘(((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint’ with ‘*’ When matching kinds k3 :: * k6 :: (((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint • In the first argument of ‘p’, namely ‘c’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:49: error: • Couldn't match kind ‘((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *’ with ‘*’ When matching kinds k4 :: * k7 :: ((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> * • In the second argument of ‘p’, namely ‘d’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:56: error: • Couldn't match kind ‘(((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint’ with ‘*’ When matching kinds k0 :: * k6 :: (((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint • In the first argument of ‘q’, namely ‘c’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:12:58: error: • Couldn't match kind ‘((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *’ with ‘*’ When matching kinds k1 :: * k7 :: ((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> * • In the second argument of ‘q’, namely ‘d’ In the type signature: run :: k2 q => Free k k1 k2 p a b -> (forall (c :: k) (d :: k1). p c d -> q c d) -> q a b T12593.hs:14:6: error: • Couldn't match type ‘Free k2 p0’ with ‘Free k6 k7 k8 p’ Expected type: Free k6 k7 k8 p a b Actual type: Free k2 p0 a b • In the pattern: Free cat In an equation for ‘run’: run (Free cat) = cat • Relevant bindings include run :: Free k k4 k8 p a b -> (forall (c :: k) (d :: k4). p c d -> q c d) -> q a b (bound at T12593.hs:14:1) T12593.hs:14:18: error: • Couldn't match kind ‘*’ with ‘(((k3 -> k4 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint’ When matching kinds k0 :: * k6 :: (((k0 -> k1 -> *) -> Constraint) -> (k3 -> k4 -> *) -> *) -> Constraint • In the expression: cat In an equation for ‘run’: run (Free cat) = cat • Relevant bindings include cat :: forall (q :: k0 -> k1 -> *). k2 q => (forall (c :: k0) (d :: k1). p0 c d -> q c d) -> q a b (bound at T12593.hs:14:11) run :: Free k k4 k8 p a b -> (forall (c :: k) (d :: k4). p c d -> q c d) -> q a b (bound at T12593.hs:14:1)