class A<X extends A<X>?> {}

class B<X extends A<Null>?> implements A<X> {
  void method1<Y extends A<Null>?>(A<Y> a, A<A<Null>>? b) {}
  void method2<Y extends String>(D<Y> a, D<String>? b) {}
}

class C {
  C.internal(_) {}
  factory C.fact(A<A<Null>>? a) {}
  factory C.redirect(A<A<Null>>? a) = C.internal;
}

class D<X extends num> {}

extension Extension1<X extends A<X>?> on A<X> {
  void method1<Y extends A<Y>?>(A<Y> a, A<A<Null>>? b) {}
  void method2<Y extends String>(D<Y> a, D<String>? b) {}
}

extension ext2<X extends A<Null>?> on A<X> {}

main() {}
test() {}
