library test;

typedef void F<T>(T x);

class B<T, U extends F<T>> {
  B<T, F<T>> operator +(other) => throw '';
}

class C {
  B<num, F<num>> x = throw '';
  static B<num, F<num>> y = throw '';
  B<num, F<num>> operator [](int i) => throw '';
  void operator []=(int i, B<num, F<num>> v) {}
}

void test1(B<num, F<num>> b) {}
void test2(C c) {}
void test3(C c) {}
void test4(C c) {}
void main() {}
