// @dart = 2.9
library test;

abstract class A<T> {
  void f(T x, int y);
}

abstract class C<T> extends B<F<T>> implements I<F<T>> {}

abstract class I<T> implements A<F<T>> {
  void f(F<T> x, Object y);
}

class B<T> implements A<F<T>> {
  void f(F<T> x, int y) {}
}

typedef void F<T>(T t);
void main() {}
