interface I> { T foo(); } class C { void baz(I x) { bar(x.foo(), x); } void bar(T x, T y) { } }