class A<T> {}

class B<T> extends A<Function(T)> {}

class Bc<T> extends A<ContravariantUse<T>> {}

class Bi<T> extends A<InvariantUse<T>> {}

class C<T> implements A<Function(T)> {}

class Cc<T> implements A<ContravariantUse<T>> {}

class Ci<T> implements A<InvariantUse<T>> {}

class D<T> = Object with A<Function(T)>;
class Dc<T> = Object with A<ContravariantUse<T>>;
class Di<T> = Object with A<InvariantUse<T>>;
class E<T> = A<Function(T)> with Empty;
class Ec<T> = A<ContravariantUse<T>> with Empty;
class Ei<T> = A<InvariantUse<T>> with Empty;

class Empty {}

class F<T> extends Object with A<Function(T)> {}

class Fc<T> extends Object with A<ContravariantUse<T>> {}

class Fi<T> extends Object with A<InvariantUse<T>> {}

class G<T> extends A<Function(T)> with Empty {}

class Gc<T> extends A<ContravariantUse<T>> with Empty {}

class Gi<T> extends A<InvariantUse<T>> with Empty {}

class Hcc<T> extends A<ContravariantUse<ContravariantUse<T>>> {}

class Hcf<T> extends A<ContravariantUse<Function(T)>> {}

class Hfc<T> extends A<Function(ContravariantUse<T>)> {}

class Hff<T> extends A<Function(Function(T))> {}

class Hii<T> extends A<InvariantUse<InvariantUse<T>>> {}

class Iacf<T> extends A<A<ContravariantUse<Function(T)>>> {}

class Iafc<T> extends A<A<Function(ContravariantUse<T>)>> {}

class Icaf<T> extends A<ContravariantUse<A<Function(T)>>> {}

class Icfa<T> extends A<ContravariantUse<Function(A<T>)>> {}

class Ifac<T> extends A<Function(A<ContravariantUse<T>>)> {}

class Ifca<T> extends A<Function(ContravariantUse<A<T>>)> {}

class Jccc<T>
    extends A<ContravariantUse<ContravariantUse<ContravariantUse<T>>>> {}

class Jccf<T> extends A<ContravariantUse<ContravariantUse<Function(T)>>> {}

class Jcfc<T> extends A<ContravariantUse<Function(ContravariantUse<T>)>> {}

class Jcff<T> extends A<ContravariantUse<Function(Function(T))>> {}

class Jfcc<T> extends A<Function(ContravariantUse<ContravariantUse<T>>)> {}

class Jfcf<T> extends A<Function(ContravariantUse<Function(T)>)> {}

class Jffc<T> extends A<Function(Function(ContravariantUse<T>))> {}

class Jfff<T> extends A<Function(Function(Function(T)))> {}

main() {}
typedef ContravariantUse<T> = Function(T);
typedef InvariantUse<T> = T Function(T);
