abstract class ClsA<M> {
  public ClsA() {}
}

class ClsB<X, Y extends ClsA<? super X>> {
  public ClsB() {
    super();
  }
}

class ClsC {
  public ClsC() {
    super();
  }
  public final void foo(ClsB<? extends Integer, ? extends ClsA<Number>> bar) {}
} 