class Am1<X, Y> {
}
class Bm1<Z> extends Object with Am1<Function(int), Z> {
}
class Cm1<Z> extends Object with Am1<Function(int x), Z> {
}
class Dm1<Z> extends Object with Am1<int Function(), Z> {
}
class Em1<Z> extends Object with Am1<Function(), Z> {
}
class Fm1<Z> extends Object with Am1<Function({int}), Z> {
}
class Gm1<Z> extends Object with Am1<Function({int x}), Z> {
}
class Hm1<Z> extends Object with Am1<Function([int]), Z> {
}
class Im1<Z> extends Object with Am1<Function([int x]), Z> {
}
class Jm1<Z> extends Object with Am1<Function, Z> {
}
class Km1<Z> extends Object with Am1<Function(Function Function), Z> {
}
class Lm1<Z> extends Object with Am1<Function(Function Function() Function) Function(), Z> {
}
class Mm1<Z> = Object with Am1<Function(int), Z>; class Nm1<Z> = Object with Am1<Function(int x), Z>; class Om1<Z> = Object with Am1<int Function(), Z>; class Pm1<Z> = Object with Am1<Function(), Z>; class Qm1<Z> = Object with Am1<Function({int}), Z>; class Rm1<Z> = Object with Am1<Function({int x}), Z>; class Sm1<Z> = Object with Am1<Function([int]), Z>; class Tm1<Z> = Object with Am1<Function([int x]), Z>; class Um1<Z> = Object with Am1<Function, Z>; class Vm1<Z> = Object with Am1<Function(Function Function), Z>; class Wm1<Z> = Object with Am1<Function(Function Function() Function) Function(), Z>;
class Am2<X extends Function(), Y> {
}
class Bm2<Z> extends Object with Am2<Function(int), Z> {
}
class Cm2<Z> extends Object with Am2<Function(int x), Z> {
}
class Dm2<Z> extends Object with Am2<int Function(), Z> {
}
class Em2<Z> extends Object with Am2<Function(), Z> {
}
class Fm2<Z> extends Object with Am2<Function({int}), Z> {
}
class Gm2<Z> extends Object with Am2<Function({int x}), Z> {
}
class Hm2<Z> extends Object with Am2<Function([int]), Z> {
}
class Im2<Z> extends Object with Am2<Function([int x]), Z> {
}
class Jm2<Z> extends Object with Am2<Function, Z> {
}
class Km2<Z> extends Object with Am2<Function(Function Function), Z> {
}
class Lm2<Z> extends Object with Am2<Function(Function Function() Function) Function(), Z> {
}
class Mm2<Z> = Object with Am2<Function(int), Z>; class Nm2<Z> = Object with Am2<Function(int x), Z>; class Om2<Z> = Object with Am2<int Function(), Z>; class Pm2<Z> = Object with Am2<Function(), Z>; class Qm2<Z> = Object with Am2<Function({int}), Z>; class Rm2<Z> = Object with Am2<Function({int x}), Z>; class Sm2<Z> = Object with Am2<Function([int]), Z>; class Tm2<Z> = Object with Am2<Function([int x]), Z>; class Um2<Z> = Object with Am2<Function, Z>; class Vm2<Z> = Object with Am2<Function(Function Function), Z>; class Wm2<Z> = Object with Am2<Function(Function Function() Function) Function(), Z>;
typedef TdB = Function(int);
typedef TdC = Function(int x);
typedef TdD = int Function();
typedef TdE = Function();
typedef TdF = Function({int});
typedef TdG = Function({int x});
typedef TdH = Function([int]);
typedef TdI = Function([int x]);
typedef TdJ = Function(Function Function);
typedef TdK = Function(Function Function() Function) Function();
class Am3<L, Y> {
}
class Bm3<Z> extends Object with Am3<TdB, Z> {
}
class Cm3<Z> extends Object with Am3<TdC, Z> {
}
class Dm3<Z> extends Object with Am3<TdD, Z> {
}
class Em3<Z> extends Object with Am3<TdE, Z> {
}
class Fm3<Z> extends Object with Am3<TdF, Z> {
}
class Gm3<Z> extends Object with Am3<TdG, Z> {
}
class Hm3<Z> extends Object with Am3<TdH, Z> {
}
class Im3<Z> extends Object with Am3<TdI, Z> {
}
class Jm3<Z> extends Object with Am3<TdJ, Z> {
}
class Km3<Z> extends Object with Am3<TdK, Z> {
}
class Af1<X extends Function(int)> {
  factory Af1.foo() => null;
}
class Bf1<X extends Function(int x)> {
  factory Bf1.foo() => null;
}
class Cf1<X extends int Function()> {
  factory Cf1.foo() => null;
}
class Df1<X extends Function()> {
  factory Df1.foo() => null;
}
class Ef1<X extends Function({int})> {
  factory Ef1.foo() => null;
}
class Ff1<X extends Function({int x})> {
  factory Ff1.foo() => null;
}
class Gf1<X extends Function([int])> {
  factory Gf1.foo() => null;
}
class Hf1<X extends Function([int x])> {
  factory Hf1.foo() => null;
}
class If1<X extends Function> {
  factory If1.foo() => null;
}
class Jf1<X extends Function(Function Function)> {
  factory Jf1.foo() => null;
}
class Kf1<X extends Function(Function Function() Function) Function()> {
  factory Kf1.foo() => null;
}
class Bf2<X extends TdB> {
  factory Bf2.foo() => null;
}
class Cf2<X extends TdC> {
  factory Cf2.foo() => null;
}
class Df2<X extends TdD> {
  factory Df2.foo() => null;
}
class Ef2<X extends TdE> {
  factory Ef2.foo() => null;
}
class Ff2<X extends TdF> {
  factory Ff2.foo() => null;
}
class Gf2<X extends TdG> {
  factory Gf2.foo() => null;
}
class Hf2<X extends TdH> {
  factory Hf2.foo() => null;
}
class If2<X extends TdI> {
  factory If2.foo() => null;
}
class Jf2<X extends TdJ> {
  factory Jf2.foo() => null;
}
class Kf2<X extends TdK> {
  factory Kf2.foo() => null;
}
main() { }
