interfaceADextendsA,D{}//name clash: getOldest(List<Integer>) in D and getOldest(List<Number>) in A have the same erasure, yet neither overrides the other
interfaceFoo2<T>{voidm(Targ);}
interfaceBar2<S>{voidm(Sarg);}
interfaceFoo2Bar2<T1,T2>extendsFoo2<T1>,Bar2<T2>{}//name clash: m(S) in Bar and m(T) in Foo have the same erasure, yet neither overrides the other