library test;

typedef void F<T>(T x);
typedef U G<T, U>(T x);

class C<T> {
  void f1(T x) {}
  T f2(List<T> x) => x.first;
}

F<num> g1(C<num> c) {}
void g2(C<int> c, Object x) {}
G<List<num>, num> g3(C<num> c) {}
void test() {}
main() {}
