gadt7.hs:16:38: error: • Couldn't match expected type ‘r’ with actual type ‘r1’ ‘r’ is untouchable inside the constraints: t ~ Int bound by a pattern with constructor: K :: T Int, in a case alternative at gadt7.hs:16:33 ‘r’ is a rigid type variable bound by the inferred type of i1b :: T t -> r1 -> r at gadt7.hs:16:1 ‘r1’ is a rigid type variable bound by the inferred type of i1b :: T t -> r1 -> r at gadt7.hs:16:1 Possible fix: add a type signature for ‘i1b’ • In the expression: y1 In a case alternative: K -> y1 In the expression: case t1 of { K -> y1 } • Relevant bindings include y1 :: r1 (bound at gadt7.hs:16:16) y :: r1 (bound at gadt7.hs:16:7) i1b :: T t -> r1 -> r (bound at gadt7.hs:16:1)