abstract class A<T> {
  const factory A() = B;
}

abstract class B<T> implements A<T> {
  const factory B() = C;
}

class C<T> implements B<T> {
  const factory C() = B;
}

test() {}
main() {}
