abstract class A<S> { abstract void foo(A> x); void bar(A x){ foo(x); } }