typedef E1<T> = void Function();
typedef E2<T extends num> = void Function();
typedef E3<T, S> = void Function();
typedef E4<T extends num, S extends num> = void Function();
typedef E5<T extends S, S extends num> = void Function();
typedef E6<T extends num, S extends T> = void Function();
typedef F1 = void Function<T>();
typedef F2 = void Function<T extends num>();
typedef F3 = void Function<T, S>();
typedef F4 = void Function<T extends num, S extends num>();
typedef F5 = void Function<T extends S, S extends num>();
typedef F6 = void Function<T extends num, S extends T>();
typedef G1<X> = void Function<T extends X>();
typedef G2<X extends num> = void Function<T extends X>();
typedef G3<X, Y> = void Function<T extends X, S extends Y>();
typedef G4<X extends num, Y extends num> = void
    Function<T extends X, S extends Y>();
typedef G5<X extends num> = void Function<T extends S, S extends X>();
typedef G6<X extends num> = void Function<T extends X, S extends T>();
typedef H1 = void Function(void Function<T>());
typedef H2 = void Function(void Function<T extends num>());
typedef H3 = void Function(void Function<T, S>());
typedef H4 = void Function(void Function<T extends num, S extends num>());
typedef H5 = void Function(void Function<T extends S, S extends num>());
typedef H6 = void Function(void Function<T extends num, S extends T>());
void Function<T>() f1;
void Function<T extends num>() f2;
void Function<T, S>() f3;
void Function<T extends num, S extends num>() f4;
void Function<T extends S, S extends num>() f5;
void Function<T extends num, S extends T>() f6;
main() {}
