import java.util.List; abstract class B { abstract T[] foo(List> x); abstract T foo0(List> x); abstract T[] foo1(List> x); abstract T[] foo2(List>> x); void bar(List> x, List>> y){ foo(x) [0] = ""; foo1(x) [0] = ""; foo2(y) [0] = ""; String s = foo0(x); } }