A<num> a = new A<int>();
B<num> b = new B<int>();

class A<T extends num> {
  void Function<S extends T>(S x) foo() {}
}

class B<T extends num> {
  void Function(T x) foo() {}
}

main() {}
