class A {}

class B extends A {}

class Class<T extends A> {
  void method1a(T t) {}
  void method1b(T t) {}
  void method2a(T t) {}
  void method2b(T t) {}
}

late List<B> xs;
late List<List<B>> xss;
void errors() {}
void main() {}
void throws(void Function() f) {}
