type C _; procedure P(x : a, y : b) returns (); implementation P(x : a, y : b) returns () {} implementation P(a : c, b : d) returns () {} implementation P(a : c, b : d) returns () {} implementation P(a : c, b : C d) returns () {} implementation P(x : a, y : a) returns () {}