// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// Test that various super-bounded types are accepted.

import 'dart:async';

class A<X> {}

class B<X extends B<X>> extends A<X> {}

typedef Fcov<X> = X Function();
typedef Fcon<X> = Function(X);
typedef Finv<X> = X Function(X);
typedef Funu<X> = Function();

typedef FcovBound<X extends num> = X Function();
typedef FconBound<X extends num> = Function(X);
typedef FinvBound<X extends num> = X Function(X);
typedef FunuBound<X extends num> = Function();

typedef FcovCyclicBound<X extends A<X>> = X Function();
typedef FconCyclicBound<X extends A<X>> = Function(X);
typedef FinvCyclicBound<X extends A<X>> = X Function(X);
typedef FunuCyclicBound<X extends A<X>> = Function();

typedef FcovCyclicCoBound<X extends Function(X)> = X Function();
typedef FconCyclicCoBound<X extends Function(X)> = Function(X);
typedef FinvCyclicCoBound<X extends Function(X)> = X Function(X);
typedef FunuCyclicCoBound<X extends Function(X)> = Function();

class CFcov<X extends Fcov<X>> {}

class CFcon<X extends Fcon<X>> {}

class CFinv<X extends Finv<X>> {}

class CFunu<X extends Funu<X>> {}

class CcovBound<X extends num> {}

class CcovCyclicBound<X extends A<X>> {}

class CcovCyclicCoBound<X extends Function(X)> {}

void testCovariantSuperbound<N extends Never>() {
  // Bottom type in a covariant position, regular-bounded.
  FcovBound<Never> x1;
  FcovBound<N> x2;
  FcovCyclicBound<Never> x3;
  FcovCyclicBound<N> x4;
  FcovCyclicBound<A<Never>> x5;
  FcovCyclicBound<A<N>> x6;
  FcovCyclicBound<A<A<Never>>> x7;
  FcovCyclicBound<A<A<N>>> x8;
  FcovCyclicCoBound<Never> x9;
  FcovCyclicCoBound<N> x10;
  FcovCyclicCoBound<Function(Function(Never))> x11;
  FcovCyclicCoBound<Function(Function(N))> x12;
  CFcov<Never> x13;
  CFcov<N> x14;
  CFcov<Fcov<Never>> x15;
  CFcov<Fcov<N>> x16;
  CFcov<Fcov<Fcov<Never>>> x17;
  CFcov<Fcov<Fcov<N>>> x18;
  CFcon<Never> x19;
  CFcon<N> x20;
  CFinv<Never> x21;
  CFinv<N> x22;
  CFunu<Never> x23;
  CFunu<N> x24;
  CcovBound<Never> x25;
  CcovBound<N> x26;
  CcovCyclicBound<Never> x27;
  CcovCyclicBound<N> x28;
  CcovCyclicBound<A<Never>> x29;
  CcovCyclicBound<A<N>> x30;
  CcovCyclicBound<A<A<Never>>> x31;
  CcovCyclicBound<A<A<N>>> x32;
  CcovCyclicCoBound<Never> x33;
  CcovCyclicCoBound<N> x34;
  CcovCyclicCoBound<Function(Function(Never))> x35;
  CcovCyclicCoBound<Function(Function(N))> x36;

  // Top type in a covariant position, super-bounded.
  FcovBound<dynamic> x37;
  FcovBound<void> x38;
  FcovBound<Object?> x39;
  FcovBound<FutureOr<dynamic>> x40;
  FcovBound<FutureOr<void>> x41;
  FcovBound<FutureOr<Object?>> x42;
  FcovCyclicBound<dynamic> x43;
  FcovCyclicBound<void> x44;
  FcovCyclicBound<Object?> x45;
  FcovCyclicBound<FutureOr<dynamic>> x46;
  FcovCyclicBound<FutureOr<void>> x47;
  FcovCyclicBound<FutureOr<Object?>> x48;
  FcovCyclicBound<A<dynamic>> x49;
  FcovCyclicBound<A<void>> x50;
  FcovCyclicBound<A<Object?>> x51;
  FcovCyclicBound<A<FutureOr<dynamic>>> x52;
  FcovCyclicBound<A<FutureOr<void>>> x53;
  FcovCyclicBound<A<FutureOr<Object?>>> x54;
  FcovCyclicBound<A<A<dynamic>>> x55;
  FcovCyclicBound<A<A<void>>> x56;
  FcovCyclicBound<A<A<Object?>>> x57;
  FcovCyclicBound<A<A<FutureOr<dynamic>>>> x58;
  FcovCyclicBound<A<A<FutureOr<void>>>> x59;
  FcovCyclicBound<A<A<FutureOr<Object?>>>> x60;
  FcovCyclicCoBound<dynamic> x61;
  FcovCyclicCoBound<void> x62;
  FcovCyclicCoBound<Object?> x63;
  FcovCyclicCoBound<FutureOr<dynamic>> x64;
  FcovCyclicCoBound<FutureOr<void>> x65;
  FcovCyclicCoBound<FutureOr<Object?>> x66;
  FcovCyclicCoBound<Function(Function(dynamic))> x67;
  FcovCyclicCoBound<Function(Function(void))> x68;
  FcovCyclicCoBound<Function(Function(Object?))> x69;
  FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))> x70;
  FcovCyclicCoBound<Function(Function(FutureOr<void>))> x71;
  FcovCyclicCoBound<Function(Function(FutureOr<Object?>))> x72;
  CFcov<dynamic> x73;
  CFcov<void> x74;
  CFcov<Object?> x75;
  CFcov<FutureOr<dynamic>> x76;
  CFcov<FutureOr<void>> x77;
  CFcov<FutureOr<Object?>> x78;
  CFcov<Fcov<dynamic>> x79;
  CFcov<Fcov<void>> x80;
  CFcov<Fcov<Object?>> x81;
  CFcov<Fcov<FutureOr<dynamic>>> x82;
  CFcov<Fcov<FutureOr<void>>> x83;
  CFcov<Fcov<FutureOr<Object?>>> x84;
  CFcov<Fcov<Fcov<dynamic>>> x85;
  CFcov<Fcov<Fcov<void>>> x86;
  CFcov<Fcov<Fcov<Object?>>> x87;
  CFcov<Fcov<Fcov<FutureOr<dynamic>>>> x88;
  CFcov<Fcov<Fcov<FutureOr<void>>>> x89;
  CFcov<Fcov<Fcov<FutureOr<Object?>>>> x90;
  CFcon<dynamic> x91;
  CFcon<void> x92;
  CFcon<Object?> x93;
  CFcon<FutureOr<dynamic>> x94;
  CFcon<FutureOr<void>> x95;
  CFcon<FutureOr<Object?>> x96;
  CFinv<dynamic> x97;
  CFinv<void> x98;
  CFinv<Object?> x99;
  CFinv<FutureOr<dynamic>> x100;
  CFinv<FutureOr<void>> x101;
  CFinv<FutureOr<Object?>> x102;
  CFunu<dynamic> x103;
  CFunu<void> x104;
  CFunu<Object?> x105;
  CFunu<FutureOr<dynamic>> x106;
  CFunu<FutureOr<void>> x107;
  CFunu<FutureOr<Object?>> x108;
  CcovBound<dynamic> x109;
  CcovBound<void> x110;
  CcovBound<Object?> x111;
  CcovBound<FutureOr<dynamic>> x112;
  CcovBound<FutureOr<void>> x113;
  CcovBound<FutureOr<Object?>> x114;
  CcovCyclicBound<dynamic> x115;
  CcovCyclicBound<void> x116;
  CcovCyclicBound<Object?> x117;
  CcovCyclicBound<FutureOr<dynamic>> x118;
  CcovCyclicBound<FutureOr<void>> x119;
  CcovCyclicBound<FutureOr<Object?>> x120;
  CcovCyclicBound<A<dynamic>> x121;
  CcovCyclicBound<A<void>> x122;
  CcovCyclicBound<A<Object?>> x123;
  CcovCyclicBound<A<FutureOr<dynamic>>> x124;
  CcovCyclicBound<A<FutureOr<void>>> x125;
  CcovCyclicBound<A<FutureOr<Object?>>> x126;
  CcovCyclicBound<A<A<dynamic>>> x127;
  CcovCyclicBound<A<A<void>>> x128;
  CcovCyclicBound<A<A<Object?>>> x129;
  CcovCyclicBound<A<A<FutureOr<dynamic>>>> x130;
  CcovCyclicBound<A<A<FutureOr<void>>>> x131;
  CcovCyclicBound<A<A<FutureOr<Object?>>>> x132;
  CcovCyclicCoBound<dynamic> x133;
  CcovCyclicCoBound<void> x134;
  CcovCyclicCoBound<Object?> x135;
  CcovCyclicCoBound<FutureOr<dynamic>> x136;
  CcovCyclicCoBound<FutureOr<void>> x137;
  CcovCyclicCoBound<FutureOr<Object?>> x138;
  CcovCyclicCoBound<Function(Function(dynamic))> x139;
  CcovCyclicCoBound<Function(Function(void))> x140;
  CcovCyclicCoBound<Function(Function(Object?))> x141;
  CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))> x142;
  CcovCyclicCoBound<Function(Function(FutureOr<void>))> x143;
  CcovCyclicCoBound<Function(Function(FutureOr<Object?>))> x144;

  // Super-bounded types in a context.
  A<FcovBound<dynamic>> x145;
  A<FcovBound<void>> x146;
  A<FcovBound<Object?>> x147;
  A<FcovBound<FutureOr<dynamic>>> x148;
  A<FcovBound<FutureOr<void>>> x149;
  A<FcovBound<FutureOr<Object?>>> x150;
  A<FcovCyclicBound<dynamic>> x151;
  A<FcovCyclicBound<void>> x152;
  A<FcovCyclicBound<Object?>> x153;
  A<FcovCyclicBound<FutureOr<dynamic>>> x154;
  A<FcovCyclicBound<FutureOr<void>>> x155;
  A<FcovCyclicBound<FutureOr<Object?>>> x156;
  A<FcovCyclicBound<A<dynamic>>> x157;
  A<FcovCyclicBound<A<void>>> x158;
  A<FcovCyclicBound<A<Object?>>> x159;
  A<FcovCyclicBound<A<FutureOr<dynamic>>>> x160;
  A<FcovCyclicBound<A<FutureOr<void>>>> x161;
  A<FcovCyclicBound<A<FutureOr<Object?>>>> x162;
  A<FcovCyclicBound<A<A<dynamic>>>> x163;
  A<FcovCyclicBound<A<A<void>>>> x164;
  A<FcovCyclicBound<A<A<Object?>>>> x165;
  A<FcovCyclicBound<A<A<FutureOr<dynamic>>>>> x166;
  A<FcovCyclicBound<A<A<FutureOr<void>>>>> x167;
  A<FcovCyclicBound<A<A<FutureOr<Object?>>>>> x168;
  A<FcovCyclicCoBound<dynamic>> x169;
  A<FcovCyclicCoBound<void>> x170;
  A<FcovCyclicCoBound<Object?>> x171;
  A<FcovCyclicCoBound<FutureOr<dynamic>>> x172;
  A<FcovCyclicCoBound<FutureOr<void>>> x173;
  A<FcovCyclicCoBound<FutureOr<Object?>>> x174;
  A<FcovCyclicCoBound<Function(Function(dynamic))>> x175;
  A<FcovCyclicCoBound<Function(Function(void))>> x176;
  A<FcovCyclicCoBound<Function(Function(Object?))>> x177;
  A<FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x178;
  A<FcovCyclicCoBound<Function(Function(FutureOr<void>))>> x179;
  A<FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x180;
  A<CFcov<dynamic>> x181;
  A<CFcov<void>> x182;
  A<CFcov<Object?>> x183;
  A<CFcov<FutureOr<dynamic>>> x184;
  A<CFcov<FutureOr<void>>> x185;
  A<CFcov<FutureOr<Object?>>> x186;
  A<CFcov<Fcov<dynamic>>> x187;
  A<CFcov<Fcov<void>>> x188;
  A<CFcov<Fcov<Object?>>> x189;
  A<CFcov<Fcov<FutureOr<dynamic>>>> x190;
  A<CFcov<Fcov<FutureOr<void>>>> x191;
  A<CFcov<Fcov<FutureOr<Object?>>>> x192;
  A<CFcov<Fcov<Fcov<dynamic>>>> x193;
  A<CFcov<Fcov<Fcov<void>>>> x194;
  A<CFcov<Fcov<Fcov<Object?>>>> x195;
  A<CFcov<Fcov<Fcov<FutureOr<dynamic>>>>> x196;
  A<CFcov<Fcov<Fcov<FutureOr<void>>>>> x197;
  A<CFcov<Fcov<Fcov<FutureOr<Object?>>>>> x198;
  A<CFcon<dynamic>> x199;
  A<CFcon<void>> x200;
  A<CFcon<Object?>> x201;
  A<CFcon<FutureOr<dynamic>>> x202;
  A<CFcon<FutureOr<void>>> x203;
  A<CFcon<FutureOr<Object?>>> x204;
  A<CFinv<dynamic>> x205;
  A<CFinv<void>> x206;
  A<CFinv<Object?>> x207;
  A<CFinv<FutureOr<dynamic>>> x208;
  A<CFinv<FutureOr<void>>> x209;
  A<CFinv<FutureOr<Object?>>> x210;
  A<CFunu<dynamic>> x211;
  A<CFunu<void>> x212;
  A<CFunu<Object?>> x213;
  A<CFunu<FutureOr<dynamic>>> x214;
  A<CFunu<FutureOr<void>>> x215;
  A<CFunu<FutureOr<Object?>>> x216;
  A<CcovBound<dynamic>> x217;
  A<CcovBound<void>> x218;
  A<CcovBound<Object?>> x219;
  A<CcovBound<FutureOr<dynamic>>> x220;
  A<CcovBound<FutureOr<void>>> x221;
  A<CcovBound<FutureOr<Object?>>> x222;
  A<CcovCyclicBound<dynamic>> x223;
  A<CcovCyclicBound<void>> x224;
  A<CcovCyclicBound<Object?>> x225;
  A<CcovCyclicBound<FutureOr<dynamic>>> x226;
  A<CcovCyclicBound<FutureOr<void>>> x227;
  A<CcovCyclicBound<FutureOr<Object?>>> x228;
  A<CcovCyclicBound<A<dynamic>>> x229;
  A<CcovCyclicBound<A<void>>> x230;
  A<CcovCyclicBound<A<Object?>>> x231;
  A<CcovCyclicBound<A<FutureOr<dynamic>>>> x232;
  A<CcovCyclicBound<A<FutureOr<void>>>> x233;
  A<CcovCyclicBound<A<FutureOr<Object?>>>> x234;
  A<CcovCyclicBound<A<A<dynamic>>>> x235;
  A<CcovCyclicBound<A<A<void>>>> x236;
  A<CcovCyclicBound<A<A<Object?>>>> x237;
  A<CcovCyclicBound<A<A<FutureOr<dynamic>>>>> x238;
  A<CcovCyclicBound<A<A<FutureOr<void>>>>> x239;
  A<CcovCyclicBound<A<A<FutureOr<Object?>>>>> x240;
  A<CcovCyclicCoBound<dynamic>> x241;
  A<CcovCyclicCoBound<void>> x242;
  A<CcovCyclicCoBound<Object?>> x243;
  A<CcovCyclicCoBound<FutureOr<dynamic>>> x244;
  A<CcovCyclicCoBound<FutureOr<void>>> x245;
  A<CcovCyclicCoBound<FutureOr<Object?>>> x246;
  A<CcovCyclicCoBound<Function(Function(dynamic))>> x247;
  A<CcovCyclicCoBound<Function(Function(void))>> x248;
  A<CcovCyclicCoBound<Function(Function(Object?))>> x249;
  A<CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x250;
  A<CcovCyclicCoBound<Function(Function(FutureOr<void>))>> x251;
  A<CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x252;
  FcovBound<dynamic> Function() x253;
  FcovBound<void> Function() x254;
  FcovBound<Object?> Function() x255;
  FcovBound<FutureOr<dynamic>> Function() x256;
  FcovBound<FutureOr<void>> Function() x257;
  FcovBound<FutureOr<Object?>> Function() x258;
  FcovCyclicBound<dynamic> Function() x259;
  FcovCyclicBound<void> Function() x260;
  FcovCyclicBound<Object?> Function() x261;
  FcovCyclicBound<FutureOr<dynamic>> Function() x262;
  FcovCyclicBound<FutureOr<void>> Function() x263;
  FcovCyclicBound<FutureOr<Object?>> Function() x264;
  FcovCyclicBound<A<dynamic>> Function() x265;
  FcovCyclicBound<A<void>> Function() x266;
  FcovCyclicBound<A<Object?>> Function() x267;
  FcovCyclicBound<A<FutureOr<dynamic>>> Function() x268;
  FcovCyclicBound<A<FutureOr<void>>> Function() x269;
  FcovCyclicBound<A<FutureOr<Object?>>> Function() x270;
  FcovCyclicBound<A<A<dynamic>>> Function() x271;
  FcovCyclicBound<A<A<void>>> Function() x272;
  FcovCyclicBound<A<A<Object?>>> Function() x273;
  FcovCyclicBound<A<A<FutureOr<dynamic>>>> Function() x274;
  FcovCyclicBound<A<A<FutureOr<void>>>> Function() x275;
  FcovCyclicBound<A<A<FutureOr<Object?>>>> Function() x276;
  FcovCyclicCoBound<dynamic> Function() x277;
  FcovCyclicCoBound<void> Function() x278;
  FcovCyclicCoBound<Object?> Function() x279;
  FcovCyclicCoBound<FutureOr<dynamic>> Function() x280;
  FcovCyclicCoBound<FutureOr<void>> Function() x281;
  FcovCyclicCoBound<FutureOr<Object?>> Function() x282;
  FcovCyclicCoBound<Function(Function(dynamic))> Function() x283;
  FcovCyclicCoBound<Function(Function(void))> Function() x284;
  FcovCyclicCoBound<Function(Function(Object?))> Function() x285;
  FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))> Function() x286;
  FcovCyclicCoBound<Function(Function(FutureOr<void>))> Function() x287;
  FcovCyclicCoBound<Function(Function(FutureOr<Object?>))> Function() x288;
  CFcov<dynamic> Function() x289;
  CFcov<void> Function() x290;
  CFcov<Object?> Function() x291;
  CFcov<FutureOr<dynamic>> Function() x292;
  CFcov<FutureOr<void>> Function() x293;
  CFcov<FutureOr<Object?>> Function() x294;
  CFcov<Fcov<dynamic>> Function() x295;
  CFcov<Fcov<void>> Function() x296;
  CFcov<Fcov<Object?>> Function() x297;
  CFcov<Fcov<FutureOr<dynamic>>> Function() x298;
  CFcov<Fcov<FutureOr<void>>> Function() x299;
  CFcov<Fcov<FutureOr<Object?>>> Function() x300;
  CFcov<Fcov<Fcov<dynamic>>> Function() x301;
  CFcov<Fcov<Fcov<void>>> Function() x302;
  CFcov<Fcov<Fcov<Object?>>> Function() x303;
  CFcov<Fcov<Fcov<FutureOr<dynamic>>>> Function() x304;
  CFcov<Fcov<Fcov<FutureOr<void>>>> Function() x305;
  CFcov<Fcov<Fcov<FutureOr<Object?>>>> Function() x306;
  CFcon<dynamic> Function() x307;
  CFcon<void> Function() x308;
  CFcon<Object?> Function() x309;
  CFcon<FutureOr<dynamic>> Function() x310;
  CFcon<FutureOr<void>> Function() x311;
  CFcon<FutureOr<Object?>> Function() x312;
  CFinv<dynamic> Function() x313;
  CFinv<void> Function() x314;
  CFinv<Object?> Function() x315;
  CFinv<FutureOr<dynamic>> Function() x316;
  CFinv<FutureOr<void>> Function() x317;
  CFinv<FutureOr<Object?>> Function() x318;
  CFunu<dynamic> Function() x319;
  CFunu<void> Function() x320;
  CFunu<Object?> Function() x321;
  CFunu<FutureOr<dynamic>> Function() x322;
  CFunu<FutureOr<void>> Function() x323;
  CFunu<FutureOr<Object?>> Function() x324;
  CcovBound<dynamic> Function() x325;
  CcovBound<void> Function() x326;
  CcovBound<Object?> Function() x327;
  CcovBound<FutureOr<dynamic>> Function() x328;
  CcovBound<FutureOr<void>> Function() x329;
  CcovBound<FutureOr<Object?>> Function() x330;
  CcovCyclicBound<dynamic> Function() x331;
  CcovCyclicBound<void> Function() x332;
  CcovCyclicBound<Object?> Function() x333;
  CcovCyclicBound<FutureOr<dynamic>> Function() x334;
  CcovCyclicBound<FutureOr<void>> Function() x335;
  CcovCyclicBound<FutureOr<Object?>> Function() x336;
  CcovCyclicBound<A<dynamic>> Function() x337;
  CcovCyclicBound<A<void>> Function() x338;
  CcovCyclicBound<A<Object?>> Function() x339;
  CcovCyclicBound<A<FutureOr<dynamic>>> Function() x340;
  CcovCyclicBound<A<FutureOr<void>>> Function() x341;
  CcovCyclicBound<A<FutureOr<Object?>>> Function() x342;
  CcovCyclicBound<A<A<dynamic>>> Function() x343;
  CcovCyclicBound<A<A<void>>> Function() x344;
  CcovCyclicBound<A<A<Object?>>> Function() x345;
  CcovCyclicBound<A<A<FutureOr<dynamic>>>> Function() x346;
  CcovCyclicBound<A<A<FutureOr<void>>>> Function() x347;
  CcovCyclicBound<A<A<FutureOr<Object?>>>> Function() x348;
  CcovCyclicCoBound<dynamic> Function() x349;
  CcovCyclicCoBound<void> Function() x350;
  CcovCyclicCoBound<Object?> Function() x351;
  CcovCyclicCoBound<FutureOr<dynamic>> Function() x352;
  CcovCyclicCoBound<FutureOr<void>> Function() x353;
  CcovCyclicCoBound<FutureOr<Object?>> Function() x354;
  CcovCyclicCoBound<Function(Function(dynamic))> Function() x355;
  CcovCyclicCoBound<Function(Function(void))> Function() x356;
  CcovCyclicCoBound<Function(Function(Object?))> Function() x357;
  CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))> Function() x358;
  CcovCyclicCoBound<Function(Function(FutureOr<void>))> Function() x359;
  CcovCyclicCoBound<Function(Function(FutureOr<Object?>))> Function() x360;
  void Function(void Function(FcovBound<dynamic>)) x361;
  void Function(void Function(FcovBound<void>)) x362;
  void Function(void Function(FcovBound<Object?>)) x363;
  void Function(void Function(FcovBound<FutureOr<dynamic>>)) x364;
  void Function(void Function(FcovBound<FutureOr<void>>)) x365;
  void Function(void Function(FcovBound<FutureOr<Object?>>)) x366;
  void Function(void Function(FcovCyclicBound<dynamic>)) x367;
  void Function(void Function(FcovCyclicBound<void>)) x368;
  void Function(void Function(FcovCyclicBound<Object?>)) x369;
  void Function(void Function(FcovCyclicBound<FutureOr<dynamic>>)) x370;
  void Function(void Function(FcovCyclicBound<FutureOr<void>>)) x371;
  void Function(void Function(FcovCyclicBound<FutureOr<Object?>>)) x372;
  void Function(void Function(FcovCyclicBound<A<dynamic>>)) x373;
  void Function(void Function(FcovCyclicBound<A<void>>)) x374;
  void Function(void Function(FcovCyclicBound<A<Object?>>)) x375;
  void Function(void Function(FcovCyclicBound<A<FutureOr<dynamic>>>)) x376;
  void Function(void Function(FcovCyclicBound<A<FutureOr<void>>>)) x377;
  void Function(void Function(FcovCyclicBound<A<FutureOr<Object?>>>)) x378;
  void Function(void Function(FcovCyclicBound<A<A<dynamic>>>)) x379;
  void Function(void Function(FcovCyclicBound<A<A<void>>>)) x380;
  void Function(void Function(FcovCyclicBound<A<A<Object?>>>)) x381;
  void Function(void Function(FcovCyclicBound<A<A<FutureOr<dynamic>>>>)) x382;
  void Function(void Function(FcovCyclicBound<A<A<FutureOr<void>>>>)) x383;
  void Function(void Function(FcovCyclicBound<A<A<FutureOr<Object?>>>>)) x384;
  void Function(void Function(FcovCyclicCoBound<dynamic>)) x385;
  void Function(void Function(FcovCyclicCoBound<void>)) x386;
  void Function(void Function(FcovCyclicCoBound<Object?>)) x387;
  void Function(void Function(FcovCyclicCoBound<FutureOr<dynamic>>)) x388;
  void Function(void Function(FcovCyclicCoBound<FutureOr<void>>)) x389;
  void Function(void Function(FcovCyclicCoBound<FutureOr<Object?>>)) x390;
  void Function(void Function(FcovCyclicCoBound<Function(Function(dynamic))>))
      x391;
  void Function(void Function(FcovCyclicCoBound<Function(Function(void))>))
      x392;
  void Function(void Function(FcovCyclicCoBound<Function(Function(Object?))>))
      x393;
  void Function(
      void Function(
          FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>)) x394;
  void Function(
          void Function(FcovCyclicCoBound<Function(Function(FutureOr<void>))>))
      x395;
  void Function(
      void Function(
          FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>)) x396;
  void Function(void Function(CFcov<dynamic>)) x397;
  void Function(void Function(CFcov<void>)) x398;
  void Function(void Function(CFcov<Object?>)) x399;
  void Function(void Function(CFcov<FutureOr<dynamic>>)) x400;
  void Function(void Function(CFcov<FutureOr<void>>)) x401;
  void Function(void Function(CFcov<FutureOr<Object?>>)) x402;
  void Function(void Function(CFcov<Fcov<dynamic>>)) x403;
  void Function(void Function(CFcov<Fcov<void>>)) x404;
  void Function(void Function(CFcov<Fcov<Object?>>)) x405;
  void Function(void Function(CFcov<Fcov<FutureOr<dynamic>>>)) x406;
  void Function(void Function(CFcov<Fcov<FutureOr<void>>>)) x407;
  void Function(void Function(CFcov<Fcov<FutureOr<Object?>>>)) x408;
  void Function(void Function(CFcov<Fcov<Fcov<dynamic>>>)) x409;
  void Function(void Function(CFcov<Fcov<Fcov<void>>>)) x410;
  void Function(void Function(CFcov<Fcov<Fcov<Object?>>>)) x411;
  void Function(void Function(CFcov<Fcov<Fcov<FutureOr<dynamic>>>>)) x412;
  void Function(void Function(CFcov<Fcov<Fcov<FutureOr<void>>>>)) x413;
  void Function(void Function(CFcov<Fcov<Fcov<FutureOr<Object?>>>>)) x414;
  void Function(void Function(CFcon<dynamic>)) x415;
  void Function(void Function(CFcon<void>)) x416;
  void Function(void Function(CFcon<Object?>)) x417;
  void Function(void Function(CFcon<FutureOr<dynamic>>)) x418;
  void Function(void Function(CFcon<FutureOr<void>>)) x419;
  void Function(void Function(CFcon<FutureOr<Object?>>)) x420;
  void Function(void Function(CFinv<dynamic>)) x421;
  void Function(void Function(CFinv<void>)) x422;
  void Function(void Function(CFinv<Object?>)) x423;
  void Function(void Function(CFinv<FutureOr<dynamic>>)) x424;
  void Function(void Function(CFinv<FutureOr<void>>)) x425;
  void Function(void Function(CFinv<FutureOr<Object?>>)) x426;
  void Function(void Function(CFunu<dynamic>)) x427;
  void Function(void Function(CFunu<void>)) x428;
  void Function(void Function(CFunu<Object?>)) x429;
  void Function(void Function(CFunu<FutureOr<dynamic>>)) x430;
  void Function(void Function(CFunu<FutureOr<void>>)) x431;
  void Function(void Function(CFunu<FutureOr<Object?>>)) x432;
  void Function(void Function(CcovBound<dynamic>)) x433;
  void Function(void Function(CcovBound<void>)) x434;
  void Function(void Function(CcovBound<Object?>)) x435;
  void Function(void Function(CcovBound<FutureOr<dynamic>>)) x436;
  void Function(void Function(CcovBound<FutureOr<void>>)) x437;
  void Function(void Function(CcovBound<FutureOr<Object?>>)) x438;
  void Function(void Function(CcovCyclicBound<dynamic>)) x439;
  void Function(void Function(CcovCyclicBound<void>)) x440;
  void Function(void Function(CcovCyclicBound<Object?>)) x441;
  void Function(void Function(CcovCyclicBound<FutureOr<dynamic>>)) x442;
  void Function(void Function(CcovCyclicBound<FutureOr<void>>)) x443;
  void Function(void Function(CcovCyclicBound<FutureOr<Object?>>)) x444;
  void Function(void Function(CcovCyclicBound<A<dynamic>>)) x445;
  void Function(void Function(CcovCyclicBound<A<void>>)) x446;
  void Function(void Function(CcovCyclicBound<A<Object?>>)) x447;
  void Function(void Function(CcovCyclicBound<A<FutureOr<dynamic>>>)) x448;
  void Function(void Function(CcovCyclicBound<A<FutureOr<void>>>)) x449;
  void Function(void Function(CcovCyclicBound<A<FutureOr<Object?>>>)) x450;
  void Function(void Function(CcovCyclicBound<A<A<dynamic>>>)) x451;
  void Function(void Function(CcovCyclicBound<A<A<void>>>)) x452;
  void Function(void Function(CcovCyclicBound<A<A<Object?>>>)) x453;
  void Function(void Function(CcovCyclicBound<A<A<FutureOr<dynamic>>>>)) x454;
  void Function(void Function(CcovCyclicBound<A<A<FutureOr<void>>>>)) x455;
  void Function(void Function(CcovCyclicBound<A<A<FutureOr<Object?>>>>)) x456;
  void Function(void Function(CcovCyclicCoBound<dynamic>)) x457;
  void Function(void Function(CcovCyclicCoBound<void>)) x458;
  void Function(void Function(CcovCyclicCoBound<Object?>)) x459;
  void Function(void Function(CcovCyclicCoBound<FutureOr<dynamic>>)) x460;
  void Function(void Function(CcovCyclicCoBound<FutureOr<void>>)) x461;
  void Function(void Function(CcovCyclicCoBound<FutureOr<Object?>>)) x462;
  void Function(void Function(CcovCyclicCoBound<Function(Function(dynamic))>))
      x463;
  void Function(void Function(CcovCyclicCoBound<Function(Function(void))>))
      x464;
  void Function(void Function(CcovCyclicCoBound<Function(Function(Object?))>))
      x465;
  void Function(
      void Function(
          CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>)) x466;
  void Function(
          void Function(CcovCyclicCoBound<Function(Function(FutureOr<void>))>))
      x467;
  void Function(
      void Function(
          CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>)) x468;
  void Function(FcovBound<dynamic>) x469;
  void Function(FcovBound<void>) x470;
  void Function(FcovBound<Object?>) x471;
  void Function(FcovBound<FutureOr<dynamic>>) x472;
  void Function(FcovBound<FutureOr<void>>) x473;
  void Function(FcovBound<FutureOr<Object?>>) x474;
  void Function(FcovCyclicBound<dynamic>) x475;
  void Function(FcovCyclicBound<void>) x476;
  void Function(FcovCyclicBound<Object?>) x477;
  void Function(FcovCyclicBound<FutureOr<dynamic>>) x478;
  void Function(FcovCyclicBound<FutureOr<void>>) x479;
  void Function(FcovCyclicBound<FutureOr<Object?>>) x480;
  void Function(FcovCyclicBound<A<dynamic>>) x481;
  void Function(FcovCyclicBound<A<void>>) x482;
  void Function(FcovCyclicBound<A<Object?>>) x483;
  void Function(FcovCyclicBound<A<FutureOr<dynamic>>>) x484;
  void Function(FcovCyclicBound<A<FutureOr<void>>>) x485;
  void Function(FcovCyclicBound<A<FutureOr<Object?>>>) x486;
  void Function(FcovCyclicBound<A<A<dynamic>>>) x487;
  void Function(FcovCyclicBound<A<A<void>>>) x488;
  void Function(FcovCyclicBound<A<A<Object?>>>) x489;
  void Function(FcovCyclicBound<A<A<FutureOr<dynamic>>>>) x490;
  void Function(FcovCyclicBound<A<A<FutureOr<void>>>>) x491;
  void Function(FcovCyclicBound<A<A<FutureOr<Object?>>>>) x492;
  void Function(FcovCyclicCoBound<dynamic>) x493;
  void Function(FcovCyclicCoBound<void>) x494;
  void Function(FcovCyclicCoBound<Object?>) x495;
  void Function(FcovCyclicCoBound<FutureOr<dynamic>>) x496;
  void Function(FcovCyclicCoBound<FutureOr<void>>) x497;
  void Function(FcovCyclicCoBound<FutureOr<Object?>>) x498;
  void Function(FcovCyclicCoBound<Function(Function(dynamic))>) x499;
  void Function(FcovCyclicCoBound<Function(Function(void))>) x500;
  void Function(FcovCyclicCoBound<Function(Function(Object?))>) x501;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>) x502;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<void>))>) x503;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>) x504;
  void Function(CFcov<dynamic>) x505;
  void Function(CFcov<void>) x506;
  void Function(CFcov<Object?>) x507;
  void Function(CFcov<FutureOr<dynamic>>) x508;
  void Function(CFcov<FutureOr<void>>) x509;
  void Function(CFcov<FutureOr<Object?>>) x510;
  void Function(CFcov<Fcov<dynamic>>) x511;
  void Function(CFcov<Fcov<void>>) x512;
  void Function(CFcov<Fcov<Object?>>) x513;
  void Function(CFcov<Fcov<FutureOr<dynamic>>>) x514;
  void Function(CFcov<Fcov<FutureOr<void>>>) x515;
  void Function(CFcov<Fcov<FutureOr<Object?>>>) x516;
  void Function(CFcov<Fcov<Fcov<dynamic>>>) x517;
  void Function(CFcov<Fcov<Fcov<void>>>) x518;
  void Function(CFcov<Fcov<Fcov<Object?>>>) x519;
  void Function(CFcov<Fcov<Fcov<FutureOr<dynamic>>>>) x520;
  void Function(CFcov<Fcov<Fcov<FutureOr<void>>>>) x521;
  void Function(CFcov<Fcov<Fcov<FutureOr<Object?>>>>) x522;
  void Function(CFcon<dynamic>) x523;
  void Function(CFcon<void>) x524;
  void Function(CFcon<Object?>) x525;
  void Function(CFcon<FutureOr<dynamic>>) x526;
  void Function(CFcon<FutureOr<void>>) x527;
  void Function(CFcon<FutureOr<Object?>>) x528;
  void Function(CFinv<dynamic>) x529;
  void Function(CFinv<void>) x530;
  void Function(CFinv<Object?>) x531;
  void Function(CFinv<FutureOr<dynamic>>) x532;
  void Function(CFinv<FutureOr<void>>) x533;
  void Function(CFinv<FutureOr<Object?>>) x534;
  void Function(CFunu<dynamic>) x535;
  void Function(CFunu<void>) x536;
  void Function(CFunu<Object?>) x537;
  void Function(CFunu<FutureOr<dynamic>>) x538;
  void Function(CFunu<FutureOr<void>>) x539;
  void Function(CFunu<FutureOr<Object?>>) x540;
  void Function(CcovBound<dynamic>) x541;
  void Function(CcovBound<void>) x542;
  void Function(CcovBound<Object?>) x543;
  void Function(CcovBound<FutureOr<dynamic>>) x544;
  void Function(CcovBound<FutureOr<void>>) x545;
  void Function(CcovBound<FutureOr<Object?>>) x546;
  void Function(CcovCyclicBound<dynamic>) x547;
  void Function(CcovCyclicBound<void>) x548;
  void Function(CcovCyclicBound<Object?>) x549;
  void Function(CcovCyclicBound<FutureOr<dynamic>>) x550;
  void Function(CcovCyclicBound<FutureOr<void>>) x551;
  void Function(CcovCyclicBound<FutureOr<Object?>>) x552;
  void Function(CcovCyclicBound<A<dynamic>>) x553;
  void Function(CcovCyclicBound<A<void>>) x554;
  void Function(CcovCyclicBound<A<Object?>>) x555;
  void Function(CcovCyclicBound<A<FutureOr<dynamic>>>) x556;
  void Function(CcovCyclicBound<A<FutureOr<void>>>) x557;
  void Function(CcovCyclicBound<A<FutureOr<Object?>>>) x558;
  void Function(CcovCyclicBound<A<A<dynamic>>>) x559;
  void Function(CcovCyclicBound<A<A<void>>>) x560;
  void Function(CcovCyclicBound<A<A<Object?>>>) x561;
  void Function(CcovCyclicBound<A<A<FutureOr<dynamic>>>>) x562;
  void Function(CcovCyclicBound<A<A<FutureOr<void>>>>) x563;
  void Function(CcovCyclicBound<A<A<FutureOr<Object?>>>>) x564;
  void Function(CcovCyclicCoBound<dynamic>) x565;
  void Function(CcovCyclicCoBound<void>) x566;
  void Function(CcovCyclicCoBound<Object?>) x567;
  void Function(CcovCyclicCoBound<FutureOr<dynamic>>) x568;
  void Function(CcovCyclicCoBound<FutureOr<void>>) x569;
  void Function(CcovCyclicCoBound<FutureOr<Object?>>) x570;
  void Function(CcovCyclicCoBound<Function(Function(dynamic))>) x571;
  void Function(CcovCyclicCoBound<Function(Function(void))>) x572;
  void Function(CcovCyclicCoBound<Function(Function(Object?))>) x573;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>) x574;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<void>))>) x575;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>) x576;
  void Function(FcovBound<dynamic>) Function() x577;
  void Function(FcovBound<void>) Function() x578;
  void Function(FcovBound<Object?>) Function() x579;
  void Function(FcovBound<FutureOr<dynamic>>) Function() x580;
  void Function(FcovBound<FutureOr<void>>) Function() x581;
  void Function(FcovBound<FutureOr<Object?>>) Function() x582;
  void Function(FcovCyclicBound<dynamic>) Function() x583;
  void Function(FcovCyclicBound<void>) Function() x584;
  void Function(FcovCyclicBound<Object?>) Function() x585;
  void Function(FcovCyclicBound<FutureOr<dynamic>>) Function() x586;
  void Function(FcovCyclicBound<FutureOr<void>>) Function() x587;
  void Function(FcovCyclicBound<FutureOr<Object?>>) Function() x588;
  void Function(FcovCyclicBound<A<dynamic>>) Function() x589;
  void Function(FcovCyclicBound<A<void>>) Function() x590;
  void Function(FcovCyclicBound<A<Object?>>) Function() x591;
  void Function(FcovCyclicBound<A<FutureOr<dynamic>>>) Function() x592;
  void Function(FcovCyclicBound<A<FutureOr<void>>>) Function() x593;
  void Function(FcovCyclicBound<A<FutureOr<Object?>>>) Function() x594;
  void Function(FcovCyclicBound<A<A<dynamic>>>) Function() x595;
  void Function(FcovCyclicBound<A<A<void>>>) Function() x596;
  void Function(FcovCyclicBound<A<A<Object?>>>) Function() x597;
  void Function(FcovCyclicBound<A<A<FutureOr<dynamic>>>>) Function() x598;
  void Function(FcovCyclicBound<A<A<FutureOr<void>>>>) Function() x599;
  void Function(FcovCyclicBound<A<A<FutureOr<Object?>>>>) Function() x600;
  void Function(FcovCyclicCoBound<dynamic>) Function() x601;
  void Function(FcovCyclicCoBound<void>) Function() x602;
  void Function(FcovCyclicCoBound<Object?>) Function() x603;
  void Function(FcovCyclicCoBound<FutureOr<dynamic>>) Function() x604;
  void Function(FcovCyclicCoBound<FutureOr<void>>) Function() x605;
  void Function(FcovCyclicCoBound<FutureOr<Object?>>) Function() x606;
  void Function(FcovCyclicCoBound<Function(Function(dynamic))>) Function() x607;
  void Function(FcovCyclicCoBound<Function(Function(void))>) Function() x608;
  void Function(FcovCyclicCoBound<Function(Function(Object?))>) Function() x609;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>)
      Function() x610;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<void>))>)
      Function() x611;
  void Function(FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>)
      Function() x612;
  void Function(CFcov<dynamic>) Function() x613;
  void Function(CFcov<void>) Function() x614;
  void Function(CFcov<Object?>) Function() x615;
  void Function(CFcov<FutureOr<dynamic>>) Function() x616;
  void Function(CFcov<FutureOr<void>>) Function() x617;
  void Function(CFcov<FutureOr<Object?>>) Function() x618;
  void Function(CFcov<Fcov<dynamic>>) Function() x619;
  void Function(CFcov<Fcov<void>>) Function() x620;
  void Function(CFcov<Fcov<Object?>>) Function() x621;
  void Function(CFcov<Fcov<FutureOr<dynamic>>>) Function() x622;
  void Function(CFcov<Fcov<FutureOr<void>>>) Function() x623;
  void Function(CFcov<Fcov<FutureOr<Object?>>>) Function() x624;
  void Function(CFcov<Fcov<Fcov<dynamic>>>) Function() x625;
  void Function(CFcov<Fcov<Fcov<void>>>) Function() x626;
  void Function(CFcov<Fcov<Fcov<Object?>>>) Function() x627;
  void Function(CFcov<Fcov<Fcov<FutureOr<dynamic>>>>) Function() x628;
  void Function(CFcov<Fcov<Fcov<FutureOr<void>>>>) Function() x629;
  void Function(CFcov<Fcov<Fcov<FutureOr<Object?>>>>) Function() x630;
  void Function(CFcon<dynamic>) Function() x631;
  void Function(CFcon<void>) Function() x632;
  void Function(CFcon<Object?>) Function() x633;
  void Function(CFcon<FutureOr<dynamic>>) Function() x634;
  void Function(CFcon<FutureOr<void>>) Function() x635;
  void Function(CFcon<FutureOr<Object?>>) Function() x636;
  void Function(CFinv<dynamic>) Function() x637;
  void Function(CFinv<void>) Function() x638;
  void Function(CFinv<Object?>) Function() x639;
  void Function(CFinv<FutureOr<dynamic>>) Function() x640;
  void Function(CFinv<FutureOr<void>>) Function() x641;
  void Function(CFinv<FutureOr<Object?>>) Function() x642;
  void Function(CFunu<dynamic>) Function() x643;
  void Function(CFunu<void>) Function() x644;
  void Function(CFunu<Object?>) Function() x645;
  void Function(CFunu<FutureOr<dynamic>>) Function() x646;
  void Function(CFunu<FutureOr<void>>) Function() x647;
  void Function(CFunu<FutureOr<Object?>>) Function() x648;
  void Function(CcovBound<dynamic>) Function() x649;
  void Function(CcovBound<void>) Function() x650;
  void Function(CcovBound<Object?>) Function() x651;
  void Function(CcovBound<FutureOr<dynamic>>) Function() x652;
  void Function(CcovBound<FutureOr<void>>) Function() x653;
  void Function(CcovBound<FutureOr<Object?>>) Function() x654;
  void Function(CcovCyclicBound<dynamic>) Function() x655;
  void Function(CcovCyclicBound<void>) Function() x656;
  void Function(CcovCyclicBound<Object?>) Function() x657;
  void Function(CcovCyclicBound<FutureOr<dynamic>>) Function() x658;
  void Function(CcovCyclicBound<FutureOr<void>>) Function() x659;
  void Function(CcovCyclicBound<FutureOr<Object?>>) Function() x660;
  void Function(CcovCyclicBound<A<dynamic>>) Function() x661;
  void Function(CcovCyclicBound<A<void>>) Function() x662;
  void Function(CcovCyclicBound<A<Object?>>) Function() x663;
  void Function(CcovCyclicBound<A<FutureOr<dynamic>>>) Function() x664;
  void Function(CcovCyclicBound<A<FutureOr<void>>>) Function() x665;
  void Function(CcovCyclicBound<A<FutureOr<Object?>>>) Function() x666;
  void Function(CcovCyclicBound<A<A<dynamic>>>) Function() x667;
  void Function(CcovCyclicBound<A<A<void>>>) Function() x668;
  void Function(CcovCyclicBound<A<A<Object?>>>) Function() x669;
  void Function(CcovCyclicBound<A<A<FutureOr<dynamic>>>>) Function() x670;
  void Function(CcovCyclicBound<A<A<FutureOr<void>>>>) Function() x671;
  void Function(CcovCyclicBound<A<A<FutureOr<Object?>>>>) Function() x672;
  void Function(CcovCyclicCoBound<dynamic>) Function() x673;
  void Function(CcovCyclicCoBound<void>) Function() x674;
  void Function(CcovCyclicCoBound<Object?>) Function() x675;
  void Function(CcovCyclicCoBound<FutureOr<dynamic>>) Function() x676;
  void Function(CcovCyclicCoBound<FutureOr<void>>) Function() x677;
  void Function(CcovCyclicCoBound<FutureOr<Object?>>) Function() x678;
  void Function(CcovCyclicCoBound<Function(Function(dynamic))>) Function() x679;
  void Function(CcovCyclicCoBound<Function(Function(void))>) Function() x680;
  void Function(CcovCyclicCoBound<Function(Function(Object?))>) Function() x681;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>)
      Function() x682;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<void>))>)
      Function() x683;
  void Function(CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>)
      Function() x684;
  void Function<Y extends FcovBound<dynamic>>() x685;
  void Function<Y extends FcovBound<void>>() x686;
  void Function<Y extends FcovBound<Object?>>() x687;
  void Function<Y extends FcovBound<FutureOr<dynamic>>>() x688;
  void Function<Y extends FcovBound<FutureOr<void>>>() x689;
  void Function<Y extends FcovBound<FutureOr<Object?>>>() x690;
  void Function<Y extends FcovCyclicBound<dynamic>>() x691;
  void Function<Y extends FcovCyclicBound<void>>() x692;
  void Function<Y extends FcovCyclicBound<Object?>>() x693;
  void Function<Y extends FcovCyclicBound<FutureOr<dynamic>>>() x694;
  void Function<Y extends FcovCyclicBound<FutureOr<void>>>() x695;
  void Function<Y extends FcovCyclicBound<FutureOr<Object?>>>() x696;
  void Function<Y extends FcovCyclicBound<A<dynamic>>>() x697;
  void Function<Y extends FcovCyclicBound<A<void>>>() x698;
  void Function<Y extends FcovCyclicBound<A<Object?>>>() x699;
  void Function<Y extends FcovCyclicBound<A<FutureOr<dynamic>>>>() x700;
  void Function<Y extends FcovCyclicBound<A<FutureOr<void>>>>() x701;
  void Function<Y extends FcovCyclicBound<A<FutureOr<Object?>>>>() x702;
  void Function<Y extends FcovCyclicBound<A<A<dynamic>>>>() x703;
  void Function<Y extends FcovCyclicBound<A<A<void>>>>() x704;
  void Function<Y extends FcovCyclicBound<A<A<Object?>>>>() x705;
  void Function<Y extends FcovCyclicBound<A<A<FutureOr<dynamic>>>>>() x706;
  void Function<Y extends FcovCyclicBound<A<A<FutureOr<void>>>>>() x707;
  void Function<Y extends FcovCyclicBound<A<A<FutureOr<Object?>>>>>() x708;
  void Function<Y extends FcovCyclicCoBound<dynamic>>() x709;
  void Function<Y extends FcovCyclicCoBound<void>>() x710;
  void Function<Y extends FcovCyclicCoBound<Object?>>() x711;
  void Function<Y extends FcovCyclicCoBound<FutureOr<dynamic>>>() x712;
  void Function<Y extends FcovCyclicCoBound<FutureOr<void>>>() x713;
  void Function<Y extends FcovCyclicCoBound<FutureOr<Object?>>>() x714;
  void Function<Y extends FcovCyclicCoBound<Function(Function(dynamic))>>()
      x715;
  void Function<Y extends FcovCyclicCoBound<Function(Function(void))>>() x716;
  void Function<Y extends FcovCyclicCoBound<Function(Function(Object?))>>()
      x717;
  void Function<
          Y extends FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>>()
      x718;
  void Function<
      Y extends FcovCyclicCoBound<Function(Function(FutureOr<void>))>>() x719;
  void Function<
          Y extends FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>>()
      x720;
  void Function<Y extends CFcov<dynamic>>() x721;
  void Function<Y extends CFcov<void>>() x722;
  void Function<Y extends CFcov<Object?>>() x723;
  void Function<Y extends CFcov<FutureOr<dynamic>>>() x724;
  void Function<Y extends CFcov<FutureOr<void>>>() x725;
  void Function<Y extends CFcov<FutureOr<Object?>>>() x726;
  void Function<Y extends CFcov<Fcov<dynamic>>>() x727;
  void Function<Y extends CFcov<Fcov<void>>>() x728;
  void Function<Y extends CFcov<Fcov<Object?>>>() x729;
  void Function<Y extends CFcov<Fcov<FutureOr<dynamic>>>>() x730;
  void Function<Y extends CFcov<Fcov<FutureOr<void>>>>() x731;
  void Function<Y extends CFcov<Fcov<FutureOr<Object?>>>>() x732;
  void Function<Y extends CFcov<Fcov<Fcov<dynamic>>>>() x733;
  void Function<Y extends CFcov<Fcov<Fcov<void>>>>() x734;
  void Function<Y extends CFcov<Fcov<Fcov<Object?>>>>() x735;
  void Function<Y extends CFcov<Fcov<Fcov<FutureOr<dynamic>>>>>() x736;
  void Function<Y extends CFcov<Fcov<Fcov<FutureOr<void>>>>>() x737;
  void Function<Y extends CFcov<Fcov<Fcov<FutureOr<Object?>>>>>() x738;
  void Function<Y extends CFcon<dynamic>>() x739;
  void Function<Y extends CFcon<void>>() x740;
  void Function<Y extends CFcon<Object?>>() x741;
  void Function<Y extends CFcon<FutureOr<dynamic>>>() x742;
  void Function<Y extends CFcon<FutureOr<void>>>() x743;
  void Function<Y extends CFcon<FutureOr<Object?>>>() x744;
  void Function<Y extends CFinv<dynamic>>() x745;
  void Function<Y extends CFinv<void>>() x746;
  void Function<Y extends CFinv<Object?>>() x747;
  void Function<Y extends CFinv<FutureOr<dynamic>>>() x748;
  void Function<Y extends CFinv<FutureOr<void>>>() x749;
  void Function<Y extends CFinv<FutureOr<Object?>>>() x750;
  void Function<Y extends CFunu<dynamic>>() x751;
  void Function<Y extends CFunu<void>>() x752;
  void Function<Y extends CFunu<Object?>>() x753;
  void Function<Y extends CFunu<FutureOr<dynamic>>>() x754;
  void Function<Y extends CFunu<FutureOr<void>>>() x755;
  void Function<Y extends CFunu<FutureOr<Object?>>>() x756;
  void Function<Y extends CcovBound<dynamic>>() x757;
  void Function<Y extends CcovBound<void>>() x758;
  void Function<Y extends CcovBound<Object?>>() x759;
  void Function<Y extends CcovBound<FutureOr<dynamic>>>() x760;
  void Function<Y extends CcovBound<FutureOr<void>>>() x761;
  void Function<Y extends CcovBound<FutureOr<Object?>>>() x762;
  void Function<Y extends CcovCyclicBound<dynamic>>() x763;
  void Function<Y extends CcovCyclicBound<void>>() x764;
  void Function<Y extends CcovCyclicBound<Object?>>() x765;
  void Function<Y extends CcovCyclicBound<FutureOr<dynamic>>>() x766;
  void Function<Y extends CcovCyclicBound<FutureOr<void>>>() x767;
  void Function<Y extends CcovCyclicBound<FutureOr<Object?>>>() x768;
  void Function<Y extends CcovCyclicBound<A<dynamic>>>() x769;
  void Function<Y extends CcovCyclicBound<A<void>>>() x770;
  void Function<Y extends CcovCyclicBound<A<Object?>>>() x771;
  void Function<Y extends CcovCyclicBound<A<FutureOr<dynamic>>>>() x772;
  void Function<Y extends CcovCyclicBound<A<FutureOr<void>>>>() x773;
  void Function<Y extends CcovCyclicBound<A<FutureOr<Object?>>>>() x774;
  void Function<Y extends CcovCyclicBound<A<A<dynamic>>>>() x775;
  void Function<Y extends CcovCyclicBound<A<A<void>>>>() x776;
  void Function<Y extends CcovCyclicBound<A<A<Object?>>>>() x777;
  void Function<Y extends CcovCyclicBound<A<A<FutureOr<dynamic>>>>>() x778;
  void Function<Y extends CcovCyclicBound<A<A<FutureOr<void>>>>>() x779;
  void Function<Y extends CcovCyclicBound<A<A<FutureOr<Object?>>>>>() x780;
  void Function<Y extends CcovCyclicCoBound<dynamic>>() x781;
  void Function<Y extends CcovCyclicCoBound<void>>() x782;
  void Function<Y extends CcovCyclicCoBound<Object?>>() x783;
  void Function<Y extends CcovCyclicCoBound<FutureOr<dynamic>>>() x784;
  void Function<Y extends CcovCyclicCoBound<FutureOr<void>>>() x785;
  void Function<Y extends CcovCyclicCoBound<FutureOr<Object?>>>() x786;
  void Function<Y extends CcovCyclicCoBound<Function(Function(dynamic))>>()
      x787;
  void Function<Y extends CcovCyclicCoBound<Function(Function(void))>>() x788;
  void Function<Y extends CcovCyclicCoBound<Function(Function(Object?))>>()
      x789;
  void Function<
          Y extends CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>>()
      x790;
  void Function<
      Y extends CcovCyclicCoBound<Function(Function(FutureOr<void>))>>() x791;
  void Function<
          Y extends CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>>()
      x792;
  void Function<Y extends A<FcovBound<dynamic>>>() x793;
  void Function<Y extends A<FcovBound<void>>>() x794;
  void Function<Y extends A<FcovBound<Object?>>>() x795;
  void Function<Y extends A<FcovBound<FutureOr<dynamic>>>>() x796;
  void Function<Y extends A<FcovBound<FutureOr<void>>>>() x797;
  void Function<Y extends A<FcovBound<FutureOr<Object?>>>>() x798;
  void Function<Y extends A<FcovCyclicBound<dynamic>>>() x799;
  void Function<Y extends A<FcovCyclicBound<void>>>() x800;
  void Function<Y extends A<FcovCyclicBound<Object?>>>() x801;
  void Function<Y extends A<FcovCyclicBound<FutureOr<dynamic>>>>() x802;
  void Function<Y extends A<FcovCyclicBound<FutureOr<void>>>>() x803;
  void Function<Y extends A<FcovCyclicBound<FutureOr<Object?>>>>() x804;
  void Function<Y extends A<FcovCyclicBound<A<dynamic>>>>() x805;
  void Function<Y extends A<FcovCyclicBound<A<void>>>>() x806;
  void Function<Y extends A<FcovCyclicBound<A<Object?>>>>() x807;
  void Function<Y extends A<FcovCyclicBound<A<FutureOr<dynamic>>>>>() x808;
  void Function<Y extends A<FcovCyclicBound<A<FutureOr<void>>>>>() x809;
  void Function<Y extends A<FcovCyclicBound<A<FutureOr<Object?>>>>>() x810;
  void Function<Y extends A<FcovCyclicBound<A<A<dynamic>>>>>() x811;
  void Function<Y extends A<FcovCyclicBound<A<A<void>>>>>() x812;
  void Function<Y extends A<FcovCyclicBound<A<A<Object?>>>>>() x813;
  void Function<Y extends A<FcovCyclicBound<A<A<FutureOr<dynamic>>>>>>() x814;
  void Function<Y extends A<FcovCyclicBound<A<A<FutureOr<void>>>>>>() x815;
  void Function<Y extends A<FcovCyclicBound<A<A<FutureOr<Object?>>>>>>() x816;
  void Function<Y extends A<FcovCyclicCoBound<dynamic>>>() x817;
  void Function<Y extends A<FcovCyclicCoBound<void>>>() x818;
  void Function<Y extends A<FcovCyclicCoBound<Object?>>>() x819;
  void Function<Y extends A<FcovCyclicCoBound<FutureOr<dynamic>>>>() x820;
  void Function<Y extends A<FcovCyclicCoBound<FutureOr<void>>>>() x821;
  void Function<Y extends A<FcovCyclicCoBound<FutureOr<Object?>>>>() x822;
  void Function<Y extends A<FcovCyclicCoBound<Function(Function(dynamic))>>>()
      x823;
  void Function<Y extends A<FcovCyclicCoBound<Function(Function(void))>>>()
      x824;
  void Function<Y extends A<FcovCyclicCoBound<Function(Function(Object?))>>>()
      x825;
  void Function<
      Y extends A<
          FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>>>() x826;
  void Function<
          Y extends A<FcovCyclicCoBound<Function(Function(FutureOr<void>))>>>()
      x827;
  void Function<
      Y extends A<
          FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>>>() x828;
  void Function<Y extends A<CFcov<dynamic>>>() x829;
  void Function<Y extends A<CFcov<void>>>() x830;
  void Function<Y extends A<CFcov<Object?>>>() x831;
  void Function<Y extends A<CFcov<FutureOr<dynamic>>>>() x832;
  void Function<Y extends A<CFcov<FutureOr<void>>>>() x833;
  void Function<Y extends A<CFcov<FutureOr<Object?>>>>() x834;
  void Function<Y extends A<CFcov<Fcov<dynamic>>>>() x835;
  void Function<Y extends A<CFcov<Fcov<void>>>>() x836;
  void Function<Y extends A<CFcov<Fcov<Object?>>>>() x837;
  void Function<Y extends A<CFcov<Fcov<FutureOr<dynamic>>>>>() x838;
  void Function<Y extends A<CFcov<Fcov<FutureOr<void>>>>>() x839;
  void Function<Y extends A<CFcov<Fcov<FutureOr<Object?>>>>>() x840;
  void Function<Y extends A<CFcov<Fcov<Fcov<dynamic>>>>>() x841;
  void Function<Y extends A<CFcov<Fcov<Fcov<void>>>>>() x842;
  void Function<Y extends A<CFcov<Fcov<Fcov<Object?>>>>>() x843;
  void Function<Y extends A<CFcov<Fcov<Fcov<FutureOr<dynamic>>>>>>() x844;
  void Function<Y extends A<CFcov<Fcov<Fcov<FutureOr<void>>>>>>() x845;
  void Function<Y extends A<CFcov<Fcov<Fcov<FutureOr<Object?>>>>>>() x846;
  void Function<Y extends A<CFcon<dynamic>>>() x847;
  void Function<Y extends A<CFcon<void>>>() x848;
  void Function<Y extends A<CFcon<Object?>>>() x849;
  void Function<Y extends A<CFcon<FutureOr<dynamic>>>>() x850;
  void Function<Y extends A<CFcon<FutureOr<void>>>>() x851;
  void Function<Y extends A<CFcon<FutureOr<Object?>>>>() x852;
  void Function<Y extends A<CFinv<dynamic>>>() x853;
  void Function<Y extends A<CFinv<void>>>() x854;
  void Function<Y extends A<CFinv<Object?>>>() x855;
  void Function<Y extends A<CFinv<FutureOr<dynamic>>>>() x856;
  void Function<Y extends A<CFinv<FutureOr<void>>>>() x857;
  void Function<Y extends A<CFinv<FutureOr<Object?>>>>() x858;
  void Function<Y extends A<CFunu<dynamic>>>() x859;
  void Function<Y extends A<CFunu<void>>>() x860;
  void Function<Y extends A<CFunu<Object?>>>() x861;
  void Function<Y extends A<CFunu<FutureOr<dynamic>>>>() x862;
  void Function<Y extends A<CFunu<FutureOr<void>>>>() x863;
  void Function<Y extends A<CFunu<FutureOr<Object?>>>>() x864;
  void Function<Y extends A<CcovBound<dynamic>>>() x865;
  void Function<Y extends A<CcovBound<void>>>() x866;
  void Function<Y extends A<CcovBound<Object?>>>() x867;
  void Function<Y extends A<CcovBound<FutureOr<dynamic>>>>() x868;
  void Function<Y extends A<CcovBound<FutureOr<void>>>>() x869;
  void Function<Y extends A<CcovBound<FutureOr<Object?>>>>() x870;
  void Function<Y extends A<CcovCyclicBound<dynamic>>>() x871;
  void Function<Y extends A<CcovCyclicBound<void>>>() x872;
  void Function<Y extends A<CcovCyclicBound<Object?>>>() x873;
  void Function<Y extends A<CcovCyclicBound<FutureOr<dynamic>>>>() x874;
  void Function<Y extends A<CcovCyclicBound<FutureOr<void>>>>() x875;
  void Function<Y extends A<CcovCyclicBound<FutureOr<Object?>>>>() x876;
  void Function<Y extends A<CcovCyclicBound<A<dynamic>>>>() x877;
  void Function<Y extends A<CcovCyclicBound<A<void>>>>() x878;
  void Function<Y extends A<CcovCyclicBound<A<Object?>>>>() x879;
  void Function<Y extends A<CcovCyclicBound<A<FutureOr<dynamic>>>>>() x880;
  void Function<Y extends A<CcovCyclicBound<A<FutureOr<void>>>>>() x881;
  void Function<Y extends A<CcovCyclicBound<A<FutureOr<Object?>>>>>() x882;
  void Function<Y extends A<CcovCyclicBound<A<A<dynamic>>>>>() x883;
  void Function<Y extends A<CcovCyclicBound<A<A<void>>>>>() x884;
  void Function<Y extends A<CcovCyclicBound<A<A<Object?>>>>>() x885;
  void Function<Y extends A<CcovCyclicBound<A<A<FutureOr<dynamic>>>>>>() x886;
  void Function<Y extends A<CcovCyclicBound<A<A<FutureOr<void>>>>>>() x887;
  void Function<Y extends A<CcovCyclicBound<A<A<FutureOr<Object?>>>>>>() x888;
  void Function<Y extends A<CcovCyclicCoBound<dynamic>>>() x889;
  void Function<Y extends A<CcovCyclicCoBound<void>>>() x890;
  void Function<Y extends A<CcovCyclicCoBound<Object?>>>() x891;
  void Function<Y extends A<CcovCyclicCoBound<FutureOr<dynamic>>>>() x892;
  void Function<Y extends A<CcovCyclicCoBound<FutureOr<void>>>>() x893;
  void Function<Y extends A<CcovCyclicCoBound<FutureOr<Object?>>>>() x894;
  void Function<Y extends A<CcovCyclicCoBound<Function(Function(dynamic))>>>()
      x895;
  void Function<Y extends A<CcovCyclicCoBound<Function(Function(void))>>>()
      x896;
  void Function<Y extends A<CcovCyclicCoBound<Function(Function(Object?))>>>()
      x897;
  void Function<
      Y extends A<
          CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>>>() x898;
  void Function<
          Y extends A<CcovCyclicCoBound<Function(Function(FutureOr<void>))>>>()
      x899;
  void Function<
      Y extends A<
          CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>>>() x900;
  Finv<FcovBound<dynamic>> x901;
  Finv<FcovBound<void>> x902;
  Finv<FcovBound<Object?>> x903;
  Finv<FcovBound<FutureOr<dynamic>>> x904;
  Finv<FcovBound<FutureOr<void>>> x905;
  Finv<FcovBound<FutureOr<Object?>>> x906;
  Finv<FcovCyclicBound<dynamic>> x907;
  Finv<FcovCyclicBound<void>> x908;
  Finv<FcovCyclicBound<Object?>> x909;
  Finv<FcovCyclicBound<FutureOr<dynamic>>> x910;
  Finv<FcovCyclicBound<FutureOr<void>>> x911;
  Finv<FcovCyclicBound<FutureOr<Object?>>> x912;
  Finv<FcovCyclicBound<A<dynamic>>> x913;
  Finv<FcovCyclicBound<A<void>>> x914;
  Finv<FcovCyclicBound<A<Object?>>> x915;
  Finv<FcovCyclicBound<A<FutureOr<dynamic>>>> x916;
  Finv<FcovCyclicBound<A<FutureOr<void>>>> x917;
  Finv<FcovCyclicBound<A<FutureOr<Object?>>>> x918;
  Finv<FcovCyclicBound<A<A<dynamic>>>> x919;
  Finv<FcovCyclicBound<A<A<void>>>> x920;
  Finv<FcovCyclicBound<A<A<Object?>>>> x921;
  Finv<FcovCyclicBound<A<A<FutureOr<dynamic>>>>> x922;
  Finv<FcovCyclicBound<A<A<FutureOr<void>>>>> x923;
  Finv<FcovCyclicBound<A<A<FutureOr<Object?>>>>> x924;
  Finv<FcovCyclicCoBound<dynamic>> x925;
  Finv<FcovCyclicCoBound<void>> x926;
  Finv<FcovCyclicCoBound<Object?>> x927;
  Finv<FcovCyclicCoBound<FutureOr<dynamic>>> x928;
  Finv<FcovCyclicCoBound<FutureOr<void>>> x929;
  Finv<FcovCyclicCoBound<FutureOr<Object?>>> x930;
  Finv<FcovCyclicCoBound<Function(Function(dynamic))>> x931;
  Finv<FcovCyclicCoBound<Function(Function(void))>> x932;
  Finv<FcovCyclicCoBound<Function(Function(Object?))>> x933;
  Finv<FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x934;
  Finv<FcovCyclicCoBound<Function(Function(FutureOr<void>))>> x935;
  Finv<FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x936;
  Finv<CFcov<dynamic>> x937;
  Finv<CFcov<void>> x938;
  Finv<CFcov<Object?>> x939;
  Finv<CFcov<FutureOr<dynamic>>> x940;
  Finv<CFcov<FutureOr<void>>> x941;
  Finv<CFcov<FutureOr<Object?>>> x942;
  Finv<CFcov<Fcov<dynamic>>> x943;
  Finv<CFcov<Fcov<void>>> x944;
  Finv<CFcov<Fcov<Object?>>> x945;
  Finv<CFcov<Fcov<FutureOr<dynamic>>>> x946;
  Finv<CFcov<Fcov<FutureOr<void>>>> x947;
  Finv<CFcov<Fcov<FutureOr<Object?>>>> x948;
  Finv<CFcov<Fcov<Fcov<dynamic>>>> x949;
  Finv<CFcov<Fcov<Fcov<void>>>> x950;
  Finv<CFcov<Fcov<Fcov<Object?>>>> x951;
  Finv<CFcov<Fcov<Fcov<FutureOr<dynamic>>>>> x952;
  Finv<CFcov<Fcov<Fcov<FutureOr<void>>>>> x953;
  Finv<CFcov<Fcov<Fcov<FutureOr<Object?>>>>> x954;
  Finv<CFcon<dynamic>> x955;
  Finv<CFcon<void>> x956;
  Finv<CFcon<Object?>> x957;
  Finv<CFcon<FutureOr<dynamic>>> x958;
  Finv<CFcon<FutureOr<void>>> x959;
  Finv<CFcon<FutureOr<Object?>>> x960;
  Finv<CFinv<dynamic>> x961;
  Finv<CFinv<void>> x962;
  Finv<CFinv<Object?>> x963;
  Finv<CFinv<FutureOr<dynamic>>> x964;
  Finv<CFinv<FutureOr<void>>> x965;
  Finv<CFinv<FutureOr<Object?>>> x966;
  Finv<CFunu<dynamic>> x967;
  Finv<CFunu<void>> x968;
  Finv<CFunu<Object?>> x969;
  Finv<CFunu<FutureOr<dynamic>>> x970;
  Finv<CFunu<FutureOr<void>>> x971;
  Finv<CFunu<FutureOr<Object?>>> x972;
  Finv<CcovBound<dynamic>> x973;
  Finv<CcovBound<void>> x974;
  Finv<CcovBound<Object?>> x975;
  Finv<CcovBound<FutureOr<dynamic>>> x976;
  Finv<CcovBound<FutureOr<void>>> x977;
  Finv<CcovBound<FutureOr<Object?>>> x978;
  Finv<CcovCyclicBound<dynamic>> x979;
  Finv<CcovCyclicBound<void>> x980;
  Finv<CcovCyclicBound<Object?>> x981;
  Finv<CcovCyclicBound<FutureOr<dynamic>>> x982;
  Finv<CcovCyclicBound<FutureOr<void>>> x983;
  Finv<CcovCyclicBound<FutureOr<Object?>>> x984;
  Finv<CcovCyclicBound<A<dynamic>>> x985;
  Finv<CcovCyclicBound<A<void>>> x986;
  Finv<CcovCyclicBound<A<Object?>>> x987;
  Finv<CcovCyclicBound<A<FutureOr<dynamic>>>> x988;
  Finv<CcovCyclicBound<A<FutureOr<void>>>> x989;
  Finv<CcovCyclicBound<A<FutureOr<Object?>>>> x990;
  Finv<CcovCyclicBound<A<A<dynamic>>>> x991;
  Finv<CcovCyclicBound<A<A<void>>>> x992;
  Finv<CcovCyclicBound<A<A<Object?>>>> x993;
  Finv<CcovCyclicBound<A<A<FutureOr<dynamic>>>>> x994;
  Finv<CcovCyclicBound<A<A<FutureOr<void>>>>> x995;
  Finv<CcovCyclicBound<A<A<FutureOr<Object?>>>>> x996;
  Finv<CcovCyclicCoBound<dynamic>> x997;
  Finv<CcovCyclicCoBound<void>> x998;
  Finv<CcovCyclicCoBound<Object?>> x999;
  Finv<CcovCyclicCoBound<FutureOr<dynamic>>> x1000;
  Finv<CcovCyclicCoBound<FutureOr<void>>> x1001;
  Finv<CcovCyclicCoBound<FutureOr<Object?>>> x1002;
  Finv<CcovCyclicCoBound<Function(Function(dynamic))>> x1003;
  Finv<CcovCyclicCoBound<Function(Function(void))>> x1004;
  Finv<CcovCyclicCoBound<Function(Function(Object?))>> x1005;
  Finv<CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x1006;
  Finv<CcovCyclicCoBound<Function(Function(FutureOr<void>))>> x1007;
  Finv<CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x1008;
  Funu<FcovBound<dynamic>> x1009;
  Funu<FcovBound<void>> x1010;
  Funu<FcovBound<Object?>> x1011;
  Funu<FcovBound<FutureOr<dynamic>>> x1012;
  Funu<FcovBound<FutureOr<void>>> x1013;
  Funu<FcovBound<FutureOr<Object?>>> x1014;
  Funu<FcovCyclicBound<dynamic>> x1015;
  Funu<FcovCyclicBound<void>> x1016;
  Funu<FcovCyclicBound<Object?>> x1017;
  Funu<FcovCyclicBound<FutureOr<dynamic>>> x1018;
  Funu<FcovCyclicBound<FutureOr<void>>> x1019;
  Funu<FcovCyclicBound<FutureOr<Object?>>> x1020;
  Funu<FcovCyclicBound<A<dynamic>>> x1021;
  Funu<FcovCyclicBound<A<void>>> x1022;
  Funu<FcovCyclicBound<A<Object?>>> x1023;
  Funu<FcovCyclicBound<A<FutureOr<dynamic>>>> x1024;
  Funu<FcovCyclicBound<A<FutureOr<void>>>> x1025;
  Funu<FcovCyclicBound<A<FutureOr<Object?>>>> x1026;
  Funu<FcovCyclicBound<A<A<dynamic>>>> x1027;
  Funu<FcovCyclicBound<A<A<void>>>> x1028;
  Funu<FcovCyclicBound<A<A<Object?>>>> x1029;
  Funu<FcovCyclicBound<A<A<FutureOr<dynamic>>>>> x1030;
  Funu<FcovCyclicBound<A<A<FutureOr<void>>>>> x1031;
  Funu<FcovCyclicBound<A<A<FutureOr<Object?>>>>> x1032;
  Funu<FcovCyclicCoBound<dynamic>> x1033;
  Funu<FcovCyclicCoBound<void>> x1034;
  Funu<FcovCyclicCoBound<Object?>> x1035;
  Funu<FcovCyclicCoBound<FutureOr<dynamic>>> x1036;
  Funu<FcovCyclicCoBound<FutureOr<void>>> x1037;
  Funu<FcovCyclicCoBound<FutureOr<Object?>>> x1038;
  Funu<FcovCyclicCoBound<Function(Function(dynamic))>> x1039;
  Funu<FcovCyclicCoBound<Function(Function(void))>> x1040;
  Funu<FcovCyclicCoBound<Function(Function(Object?))>> x1041;
  Funu<FcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x1042;
  Funu<FcovCyclicCoBound<Function(Function(FutureOr<void>))>> x1043;
  Funu<FcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x1044;
  Funu<CFcov<dynamic>> x1045;
  Funu<CFcov<void>> x1046;
  Funu<CFcov<Object?>> x1047;
  Funu<CFcov<FutureOr<dynamic>>> x1048;
  Funu<CFcov<FutureOr<void>>> x1049;
  Funu<CFcov<FutureOr<Object?>>> x1050;
  Funu<CFcov<Fcov<dynamic>>> x1051;
  Funu<CFcov<Fcov<void>>> x1052;
  Funu<CFcov<Fcov<Object?>>> x1053;
  Funu<CFcov<Fcov<FutureOr<dynamic>>>> x1054;
  Funu<CFcov<Fcov<FutureOr<void>>>> x1055;
  Funu<CFcov<Fcov<FutureOr<Object?>>>> x1056;
  Funu<CFcov<Fcov<Fcov<dynamic>>>> x1057;
  Funu<CFcov<Fcov<Fcov<void>>>> x1058;
  Funu<CFcov<Fcov<Fcov<Object?>>>> x1059;
  Funu<CFcov<Fcov<Fcov<FutureOr<dynamic>>>>> x1060;
  Funu<CFcov<Fcov<Fcov<FutureOr<void>>>>> x1061;
  Funu<CFcov<Fcov<Fcov<FutureOr<Object?>>>>> x1062;
  Funu<CFcon<dynamic>> x1063;
  Funu<CFcon<void>> x1064;
  Funu<CFcon<Object?>> x1065;
  Funu<CFcon<FutureOr<dynamic>>> x1066;
  Funu<CFcon<FutureOr<void>>> x1067;
  Funu<CFcon<FutureOr<Object?>>> x1068;
  Funu<CFinv<dynamic>> x1069;
  Funu<CFinv<void>> x1070;
  Funu<CFinv<Object?>> x1071;
  Funu<CFinv<FutureOr<dynamic>>> x1072;
  Funu<CFinv<FutureOr<void>>> x1073;
  Funu<CFinv<FutureOr<Object?>>> x1074;
  Funu<CFunu<dynamic>> x1075;
  Funu<CFunu<void>> x1076;
  Funu<CFunu<Object?>> x1077;
  Funu<CFunu<FutureOr<dynamic>>> x1078;
  Funu<CFunu<FutureOr<void>>> x1079;
  Funu<CFunu<FutureOr<Object?>>> x1080;
  Funu<CcovBound<dynamic>> x1081;
  Funu<CcovBound<void>> x1082;
  Funu<CcovBound<Object?>> x1083;
  Funu<CcovBound<FutureOr<dynamic>>> x1084;
  Funu<CcovBound<FutureOr<void>>> x1085;
  Funu<CcovBound<FutureOr<Object?>>> x1086;
  Funu<CcovCyclicBound<dynamic>> x1087;
  Funu<CcovCyclicBound<void>> x1088;
  Funu<CcovCyclicBound<Object?>> x1089;
  Funu<CcovCyclicBound<FutureOr<dynamic>>> x1090;
  Funu<CcovCyclicBound<FutureOr<void>>> x1091;
  Funu<CcovCyclicBound<FutureOr<Object?>>> x1092;
  Funu<CcovCyclicBound<A<dynamic>>> x1093;
  Funu<CcovCyclicBound<A<void>>> x1094;
  Funu<CcovCyclicBound<A<Object?>>> x1095;
  Funu<CcovCyclicBound<A<FutureOr<dynamic>>>> x1096;
  Funu<CcovCyclicBound<A<FutureOr<void>>>> x1097;
  Funu<CcovCyclicBound<A<FutureOr<Object?>>>> x1098;
  Funu<CcovCyclicBound<A<A<dynamic>>>> x1099;
  Funu<CcovCyclicBound<A<A<void>>>> x1100;
  Funu<CcovCyclicBound<A<A<Object?>>>> x1101;
  Funu<CcovCyclicBound<A<A<FutureOr<dynamic>>>>> x1102;
  Funu<CcovCyclicBound<A<A<FutureOr<void>>>>> x1103;
  Funu<CcovCyclicBound<A<A<FutureOr<Object?>>>>> x1104;
  Funu<CcovCyclicCoBound<dynamic>> x1105;
  Funu<CcovCyclicCoBound<void>> x1106;
  Funu<CcovCyclicCoBound<Object?>> x1107;
  Funu<CcovCyclicCoBound<FutureOr<dynamic>>> x1108;
  Funu<CcovCyclicCoBound<FutureOr<void>>> x1109;
  Funu<CcovCyclicCoBound<FutureOr<Object?>>> x1110;
  Funu<CcovCyclicCoBound<Function(Function(dynamic))>> x1111;
  Funu<CcovCyclicCoBound<Function(Function(void))>> x1112;
  Funu<CcovCyclicCoBound<Function(Function(Object?))>> x1113;
  Funu<CcovCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x1114;
  Funu<CcovCyclicCoBound<Function(Function(FutureOr<void>))>> x1115;
  Funu<CcovCyclicCoBound<Function(Function(FutureOr<Object?>))>> x1116;
}

void testContravariantSuperbound<N extends Never>() {
  // Top type in a contravariant position, regular-bounded.
  FcovCyclicCoBound<Function(dynamic)> x1;
  FcovCyclicCoBound<Function(void)> x2;
  FcovCyclicCoBound<Function(Object?)> x3;
  FcovCyclicCoBound<Function(FutureOr<dynamic>)> x4;
  FcovCyclicCoBound<Function(FutureOr<void>)> x5;
  FcovCyclicCoBound<Function(FutureOr<Object?>)> x6;
  CFcon<Fcon<dynamic>> x7;
  CFcon<Fcon<void>> x8;
  CFcon<Fcon<Object?>> x9;
  CFcon<Fcon<FutureOr<dynamic>>> x10;
  CFcon<Fcon<FutureOr<void>>> x11;
  CFcon<Fcon<FutureOr<Object?>>> x12;
  CcovCyclicCoBound<Function(dynamic)> x13;
  CcovCyclicCoBound<Function(void)> x14;
  CcovCyclicCoBound<Function(Object?)> x15;
  CcovCyclicCoBound<Function(FutureOr<dynamic>)> x16;
  CcovCyclicCoBound<Function(FutureOr<void>)> x17;
  CcovCyclicCoBound<Function(FutureOr<Object?>)> x18;

  // Bottom type in a contravariant position, super-bounded.
  FcovCyclicCoBound<Function(Never)> x19;
  FcovCyclicCoBound<Function(N)> x20;
  CFcon<Fcon<Never>> x21;
  CFcon<Fcon<N>> x22;
  CcovCyclicCoBound<Function(Never)> x23;
  CcovCyclicCoBound<Function(N)> x24;

  // Super-bounded types in a context.
  A<FcovCyclicCoBound<Function(Never)>> x25;
  A<FcovCyclicCoBound<Function(N)>> x26;
  A<CFcon<Fcon<Never>>> x27;
  A<CFcon<Fcon<N>>> x28;
  A<CcovCyclicCoBound<Function(Never)>> x29;
  A<CcovCyclicCoBound<Function(N)>> x30;
  FcovCyclicCoBound<Function(Never)> Function() x31;
  FcovCyclicCoBound<Function(N)> Function() x32;
  CFcon<Fcon<Never>> Function() x33;
  CFcon<Fcon<N>> Function() x34;
  CcovCyclicCoBound<Function(Never)> Function() x35;
  CcovCyclicCoBound<Function(N)> Function() x36;
  void Function(void Function(FcovCyclicCoBound<Function(Never)>)) x37;
  void Function(void Function(FcovCyclicCoBound<Function(N)>)) x38;
  void Function(void Function(CFcon<Fcon<Never>>)) x39;
  void Function(void Function(CFcon<Fcon<N>>)) x40;
  void Function(void Function(CcovCyclicCoBound<Function(Never)>)) x41;
  void Function(void Function(CcovCyclicCoBound<Function(N)>)) x42;
  void Function(FcovCyclicCoBound<Function(Never)>) x43;
  void Function(FcovCyclicCoBound<Function(N)>) x44;
  void Function(CFcon<Fcon<Never>>) x45;
  void Function(CFcon<Fcon<N>>) x46;
  void Function(CcovCyclicCoBound<Function(Never)>) x47;
  void Function(CcovCyclicCoBound<Function(N)>) x48;
  void Function(FcovCyclicCoBound<Function(Never)>) Function() x49;
  void Function(FcovCyclicCoBound<Function(N)>) Function() x50;
  void Function(CFcon<Fcon<Never>>) Function() x51;
  void Function(CFcon<Fcon<N>>) Function() x52;
  void Function(CcovCyclicCoBound<Function(Never)>) Function() x53;
  void Function(CcovCyclicCoBound<Function(N)>) Function() x54;
  void Function<Y extends FcovCyclicCoBound<Function(Never)>>() x55;
  void Function<Y extends FcovCyclicCoBound<Function(N)>>() x56;
  void Function<Y extends CFcon<Fcon<Never>>>() x57;
  void Function<Y extends CFcon<Fcon<N>>>() x58;
  void Function<Y extends CcovCyclicCoBound<Function(Never)>>() x59;
  void Function<Y extends CcovCyclicCoBound<Function(N)>>() x60;
  void Function<Y extends A<FcovCyclicCoBound<Function(Never)>>>() x61;
  void Function<Y extends A<FcovCyclicCoBound<Function(N)>>>() x62;
  void Function<Y extends A<CFcon<Fcon<Never>>>>() x63;
  void Function<Y extends A<CFcon<Fcon<N>>>>() x64;
  void Function<Y extends A<CcovCyclicCoBound<Function(Never)>>>() x65;
  void Function<Y extends A<CcovCyclicCoBound<Function(N)>>>() x66;
  Finv<FcovCyclicCoBound<Function(Never)>> x67;
  Finv<FcovCyclicCoBound<Function(N)>> x68;
  Finv<CFcon<Fcon<Never>>> x69;
  Finv<CFcon<Fcon<N>>> x70;
  Finv<CcovCyclicCoBound<Function(Never)>> x71;
  Finv<CcovCyclicCoBound<Function(N)>> x72;
  Funu<FcovCyclicCoBound<Function(Never)>> x73;
  Funu<FcovCyclicCoBound<Function(N)>> x74;
  Funu<CFcon<Fcon<Never>>> x75;
  Funu<CFcon<Fcon<N>>> x76;
  Funu<CcovCyclicCoBound<Function(Never)>> x77;
  Funu<CcovCyclicCoBound<Function(N)>> x78;
}

void testInvariantSuperbound<N extends Never>() {
  // Bottom type in an invariant position, regular-bounded.
  FinvBound<Never> x1;
  FinvBound<N> x2;
  FinvCyclicBound<Never> x3;
  FinvCyclicBound<N> x4;
  FinvCyclicBound<A<Never>> x5;
  FinvCyclicBound<A<N>> x6;
  FinvCyclicBound<A<A<Never>>> x7;
  FinvCyclicBound<A<A<N>>> x8;
  FinvCyclicCoBound<Never> x9;
  FinvCyclicCoBound<N> x10;
  FinvCyclicCoBound<Function(Function(Never))> x11;
  FinvCyclicCoBound<Function(Function(N))> x12;

  // Top type in an invariant position, super-bounded.
  FinvBound<dynamic> x13;
  FinvBound<void> x14;
  FinvBound<Object?> x15;
  FinvBound<FutureOr<dynamic>> x16;
  FinvBound<FutureOr<void>> x17;
  FinvBound<FutureOr<Object?>> x18;
  FinvCyclicBound<dynamic> x19;
  FinvCyclicBound<void> x20;
  FinvCyclicBound<Object?> x21;
  FinvCyclicBound<FutureOr<dynamic>> x22;
  FinvCyclicBound<FutureOr<void>> x23;
  FinvCyclicBound<FutureOr<Object?>> x24;
  FinvCyclicBound<A<dynamic>> x25;
  FinvCyclicBound<A<void>> x26;
  FinvCyclicBound<A<Object?>> x27;
  FinvCyclicBound<A<FutureOr<dynamic>>> x28;
  FinvCyclicBound<A<FutureOr<void>>> x29;
  FinvCyclicBound<A<FutureOr<Object?>>> x30;
  FinvCyclicBound<A<A<dynamic>>> x31;
  FinvCyclicBound<A<A<void>>> x32;
  FinvCyclicBound<A<A<Object?>>> x33;
  FinvCyclicBound<A<A<FutureOr<dynamic>>>> x34;
  FinvCyclicBound<A<A<FutureOr<void>>>> x35;
  FinvCyclicBound<A<A<FutureOr<Object?>>>> x36;
  FinvCyclicCoBound<dynamic> x37;
  FinvCyclicCoBound<void> x38;
  FinvCyclicCoBound<Object?> x39;
  FinvCyclicCoBound<FutureOr<dynamic>> x40;
  FinvCyclicCoBound<FutureOr<void>> x41;
  FinvCyclicCoBound<FutureOr<Object?>> x42;
  FinvCyclicCoBound<Function(Function(dynamic))> x43;
  FinvCyclicCoBound<Function(Function(void))> x44;
  FinvCyclicCoBound<Function(Function(Object?))> x45;
  FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))> x46;
  FinvCyclicCoBound<Function(Function(FutureOr<void>))> x47;
  FinvCyclicCoBound<Function(Function(FutureOr<Object?>))> x48;

  // Super-bounded types in a context.
  A<FinvBound<dynamic>> x49;
  A<FinvBound<void>> x50;
  A<FinvBound<Object?>> x51;
  A<FinvBound<FutureOr<dynamic>>> x52;
  A<FinvBound<FutureOr<void>>> x53;
  A<FinvBound<FutureOr<Object?>>> x54;
  A<FinvCyclicBound<dynamic>> x55;
  A<FinvCyclicBound<void>> x56;
  A<FinvCyclicBound<Object?>> x57;
  A<FinvCyclicBound<FutureOr<dynamic>>> x58;
  A<FinvCyclicBound<FutureOr<void>>> x59;
  A<FinvCyclicBound<FutureOr<Object?>>> x60;
  A<FinvCyclicBound<A<dynamic>>> x61;
  A<FinvCyclicBound<A<void>>> x62;
  A<FinvCyclicBound<A<Object?>>> x63;
  A<FinvCyclicBound<A<FutureOr<dynamic>>>> x64;
  A<FinvCyclicBound<A<FutureOr<void>>>> x65;
  A<FinvCyclicBound<A<FutureOr<Object?>>>> x66;
  A<FinvCyclicBound<A<A<dynamic>>>> x67;
  A<FinvCyclicBound<A<A<void>>>> x68;
  A<FinvCyclicBound<A<A<Object?>>>> x69;
  A<FinvCyclicBound<A<A<FutureOr<dynamic>>>>> x70;
  A<FinvCyclicBound<A<A<FutureOr<void>>>>> x71;
  A<FinvCyclicBound<A<A<FutureOr<Object?>>>>> x72;
  A<FinvCyclicCoBound<dynamic>> x73;
  A<FinvCyclicCoBound<void>> x74;
  A<FinvCyclicCoBound<Object?>> x75;
  A<FinvCyclicCoBound<FutureOr<dynamic>>> x76;
  A<FinvCyclicCoBound<FutureOr<void>>> x77;
  A<FinvCyclicCoBound<FutureOr<Object?>>> x78;
  A<FinvCyclicCoBound<Function(Function(dynamic))>> x79;
  A<FinvCyclicCoBound<Function(Function(void))>> x80;
  A<FinvCyclicCoBound<Function(Function(Object?))>> x81;
  A<FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x82;
  A<FinvCyclicCoBound<Function(Function(FutureOr<void>))>> x83;
  A<FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>> x84;
  FinvBound<dynamic> Function() x85;
  FinvBound<void> Function() x86;
  FinvBound<Object?> Function() x87;
  FinvBound<FutureOr<dynamic>> Function() x88;
  FinvBound<FutureOr<void>> Function() x89;
  FinvBound<FutureOr<Object?>> Function() x90;
  FinvCyclicBound<dynamic> Function() x91;
  FinvCyclicBound<void> Function() x92;
  FinvCyclicBound<Object?> Function() x93;
  FinvCyclicBound<FutureOr<dynamic>> Function() x94;
  FinvCyclicBound<FutureOr<void>> Function() x95;
  FinvCyclicBound<FutureOr<Object?>> Function() x96;
  FinvCyclicBound<A<dynamic>> Function() x97;
  FinvCyclicBound<A<void>> Function() x98;
  FinvCyclicBound<A<Object?>> Function() x99;
  FinvCyclicBound<A<FutureOr<dynamic>>> Function() x100;
  FinvCyclicBound<A<FutureOr<void>>> Function() x101;
  FinvCyclicBound<A<FutureOr<Object?>>> Function() x102;
  FinvCyclicBound<A<A<dynamic>>> Function() x103;
  FinvCyclicBound<A<A<void>>> Function() x104;
  FinvCyclicBound<A<A<Object?>>> Function() x105;
  FinvCyclicBound<A<A<FutureOr<dynamic>>>> Function() x106;
  FinvCyclicBound<A<A<FutureOr<void>>>> Function() x107;
  FinvCyclicBound<A<A<FutureOr<Object?>>>> Function() x108;
  FinvCyclicCoBound<dynamic> Function() x109;
  FinvCyclicCoBound<void> Function() x110;
  FinvCyclicCoBound<Object?> Function() x111;
  FinvCyclicCoBound<FutureOr<dynamic>> Function() x112;
  FinvCyclicCoBound<FutureOr<void>> Function() x113;
  FinvCyclicCoBound<FutureOr<Object?>> Function() x114;
  FinvCyclicCoBound<Function(Function(dynamic))> Function() x115;
  FinvCyclicCoBound<Function(Function(void))> Function() x116;
  FinvCyclicCoBound<Function(Function(Object?))> Function() x117;
  FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))> Function() x118;
  FinvCyclicCoBound<Function(Function(FutureOr<void>))> Function() x119;
  FinvCyclicCoBound<Function(Function(FutureOr<Object?>))> Function() x120;
  void Function(void Function(FinvBound<dynamic>)) x121;
  void Function(void Function(FinvBound<void>)) x122;
  void Function(void Function(FinvBound<Object?>)) x123;
  void Function(void Function(FinvBound<FutureOr<dynamic>>)) x124;
  void Function(void Function(FinvBound<FutureOr<void>>)) x125;
  void Function(void Function(FinvBound<FutureOr<Object?>>)) x126;
  void Function(void Function(FinvCyclicBound<dynamic>)) x127;
  void Function(void Function(FinvCyclicBound<void>)) x128;
  void Function(void Function(FinvCyclicBound<Object?>)) x129;
  void Function(void Function(FinvCyclicBound<FutureOr<dynamic>>)) x130;
  void Function(void Function(FinvCyclicBound<FutureOr<void>>)) x131;
  void Function(void Function(FinvCyclicBound<FutureOr<Object?>>)) x132;
  void Function(void Function(FinvCyclicBound<A<dynamic>>)) x133;
  void Function(void Function(FinvCyclicBound<A<void>>)) x134;
  void Function(void Function(FinvCyclicBound<A<Object?>>)) x135;
  void Function(void Function(FinvCyclicBound<A<FutureOr<dynamic>>>)) x136;
  void Function(void Function(FinvCyclicBound<A<FutureOr<void>>>)) x137;
  void Function(void Function(FinvCyclicBound<A<FutureOr<Object?>>>)) x138;
  void Function(void Function(FinvCyclicBound<A<A<dynamic>>>)) x139;
  void Function(void Function(FinvCyclicBound<A<A<void>>>)) x140;
  void Function(void Function(FinvCyclicBound<A<A<Object?>>>)) x141;
  void Function(void Function(FinvCyclicBound<A<A<FutureOr<dynamic>>>>)) x142;
  void Function(void Function(FinvCyclicBound<A<A<FutureOr<void>>>>)) x143;
  void Function(void Function(FinvCyclicBound<A<A<FutureOr<Object?>>>>)) x144;
  void Function(void Function(FinvCyclicCoBound<dynamic>)) x145;
  void Function(void Function(FinvCyclicCoBound<void>)) x146;
  void Function(void Function(FinvCyclicCoBound<Object?>)) x147;
  void Function(void Function(FinvCyclicCoBound<FutureOr<dynamic>>)) x148;
  void Function(void Function(FinvCyclicCoBound<FutureOr<void>>)) x149;
  void Function(void Function(FinvCyclicCoBound<FutureOr<Object?>>)) x150;
  void Function(void Function(FinvCyclicCoBound<Function(Function(dynamic))>))
      x151;
  void Function(void Function(FinvCyclicCoBound<Function(Function(void))>))
      x152;
  void Function(void Function(FinvCyclicCoBound<Function(Function(Object?))>))
      x153;
  void Function(
      void Function(
          FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>)) x154;
  void Function(
          void Function(FinvCyclicCoBound<Function(Function(FutureOr<void>))>))
      x155;
  void Function(
      void Function(
          FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>)) x156;
  void Function(FinvBound<dynamic>) x157;
  void Function(FinvBound<void>) x158;
  void Function(FinvBound<Object?>) x159;
  void Function(FinvBound<FutureOr<dynamic>>) x160;
  void Function(FinvBound<FutureOr<void>>) x161;
  void Function(FinvBound<FutureOr<Object?>>) x162;
  void Function(FinvCyclicBound<dynamic>) x163;
  void Function(FinvCyclicBound<void>) x164;
  void Function(FinvCyclicBound<Object?>) x165;
  void Function(FinvCyclicBound<FutureOr<dynamic>>) x166;
  void Function(FinvCyclicBound<FutureOr<void>>) x167;
  void Function(FinvCyclicBound<FutureOr<Object?>>) x168;
  void Function(FinvCyclicBound<A<dynamic>>) x169;
  void Function(FinvCyclicBound<A<void>>) x170;
  void Function(FinvCyclicBound<A<Object?>>) x171;
  void Function(FinvCyclicBound<A<FutureOr<dynamic>>>) x172;
  void Function(FinvCyclicBound<A<FutureOr<void>>>) x173;
  void Function(FinvCyclicBound<A<FutureOr<Object?>>>) x174;
  void Function(FinvCyclicBound<A<A<dynamic>>>) x175;
  void Function(FinvCyclicBound<A<A<void>>>) x176;
  void Function(FinvCyclicBound<A<A<Object?>>>) x177;
  void Function(FinvCyclicBound<A<A<FutureOr<dynamic>>>>) x178;
  void Function(FinvCyclicBound<A<A<FutureOr<void>>>>) x179;
  void Function(FinvCyclicBound<A<A<FutureOr<Object?>>>>) x180;
  void Function(FinvCyclicCoBound<dynamic>) x181;
  void Function(FinvCyclicCoBound<void>) x182;
  void Function(FinvCyclicCoBound<Object?>) x183;
  void Function(FinvCyclicCoBound<FutureOr<dynamic>>) x184;
  void Function(FinvCyclicCoBound<FutureOr<void>>) x185;
  void Function(FinvCyclicCoBound<FutureOr<Object?>>) x186;
  void Function(FinvCyclicCoBound<Function(Function(dynamic))>) x187;
  void Function(FinvCyclicCoBound<Function(Function(void))>) x188;
  void Function(FinvCyclicCoBound<Function(Function(Object?))>) x189;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>) x190;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<void>))>) x191;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>) x192;
  void Function(FinvBound<dynamic>) Function() x193;
  void Function(FinvBound<void>) Function() x194;
  void Function(FinvBound<Object?>) Function() x195;
  void Function(FinvBound<FutureOr<dynamic>>) Function() x196;
  void Function(FinvBound<FutureOr<void>>) Function() x197;
  void Function(FinvBound<FutureOr<Object?>>) Function() x198;
  void Function(FinvCyclicBound<dynamic>) Function() x199;
  void Function(FinvCyclicBound<void>) Function() x200;
  void Function(FinvCyclicBound<Object?>) Function() x201;
  void Function(FinvCyclicBound<FutureOr<dynamic>>) Function() x202;
  void Function(FinvCyclicBound<FutureOr<void>>) Function() x203;
  void Function(FinvCyclicBound<FutureOr<Object?>>) Function() x204;
  void Function(FinvCyclicBound<A<dynamic>>) Function() x205;
  void Function(FinvCyclicBound<A<void>>) Function() x206;
  void Function(FinvCyclicBound<A<Object?>>) Function() x207;
  void Function(FinvCyclicBound<A<FutureOr<dynamic>>>) Function() x208;
  void Function(FinvCyclicBound<A<FutureOr<void>>>) Function() x209;
  void Function(FinvCyclicBound<A<FutureOr<Object?>>>) Function() x210;
  void Function(FinvCyclicBound<A<A<dynamic>>>) Function() x211;
  void Function(FinvCyclicBound<A<A<void>>>) Function() x212;
  void Function(FinvCyclicBound<A<A<Object?>>>) Function() x213;
  void Function(FinvCyclicBound<A<A<FutureOr<dynamic>>>>) Function() x214;
  void Function(FinvCyclicBound<A<A<FutureOr<void>>>>) Function() x215;
  void Function(FinvCyclicBound<A<A<FutureOr<Object?>>>>) Function() x216;
  void Function(FinvCyclicCoBound<dynamic>) Function() x217;
  void Function(FinvCyclicCoBound<void>) Function() x218;
  void Function(FinvCyclicCoBound<Object?>) Function() x219;
  void Function(FinvCyclicCoBound<FutureOr<dynamic>>) Function() x220;
  void Function(FinvCyclicCoBound<FutureOr<void>>) Function() x221;
  void Function(FinvCyclicCoBound<FutureOr<Object?>>) Function() x222;
  void Function(FinvCyclicCoBound<Function(Function(dynamic))>) Function() x223;
  void Function(FinvCyclicCoBound<Function(Function(void))>) Function() x224;
  void Function(FinvCyclicCoBound<Function(Function(Object?))>) Function() x225;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>)
      Function() x226;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<void>))>)
      Function() x227;
  void Function(FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>)
      Function() x228;
  void Function<Y extends FinvBound<dynamic>>() x229;
  void Function<Y extends FinvBound<void>>() x230;
  void Function<Y extends FinvBound<Object?>>() x231;
  void Function<Y extends FinvBound<FutureOr<dynamic>>>() x232;
  void Function<Y extends FinvBound<FutureOr<void>>>() x233;
  void Function<Y extends FinvBound<FutureOr<Object?>>>() x234;
  void Function<Y extends FinvCyclicBound<dynamic>>() x235;
  void Function<Y extends FinvCyclicBound<void>>() x236;
  void Function<Y extends FinvCyclicBound<Object?>>() x237;
  void Function<Y extends FinvCyclicBound<FutureOr<dynamic>>>() x238;
  void Function<Y extends FinvCyclicBound<FutureOr<void>>>() x239;
  void Function<Y extends FinvCyclicBound<FutureOr<Object?>>>() x240;
  void Function<Y extends FinvCyclicBound<A<dynamic>>>() x241;
  void Function<Y extends FinvCyclicBound<A<void>>>() x242;
  void Function<Y extends FinvCyclicBound<A<Object?>>>() x243;
  void Function<Y extends FinvCyclicBound<A<FutureOr<dynamic>>>>() x244;
  void Function<Y extends FinvCyclicBound<A<FutureOr<void>>>>() x245;
  void Function<Y extends FinvCyclicBound<A<FutureOr<Object?>>>>() x246;
  void Function<Y extends FinvCyclicBound<A<A<dynamic>>>>() x247;
  void Function<Y extends FinvCyclicBound<A<A<void>>>>() x248;
  void Function<Y extends FinvCyclicBound<A<A<Object?>>>>() x249;
  void Function<Y extends FinvCyclicBound<A<A<FutureOr<dynamic>>>>>() x250;
  void Function<Y extends FinvCyclicBound<A<A<FutureOr<void>>>>>() x251;
  void Function<Y extends FinvCyclicBound<A<A<FutureOr<Object?>>>>>() x252;
  void Function<Y extends FinvCyclicCoBound<dynamic>>() x253;
  void Function<Y extends FinvCyclicCoBound<void>>() x254;
  void Function<Y extends FinvCyclicCoBound<Object?>>() x255;
  void Function<Y extends FinvCyclicCoBound<FutureOr<dynamic>>>() x256;
  void Function<Y extends FinvCyclicCoBound<FutureOr<void>>>() x257;
  void Function<Y extends FinvCyclicCoBound<FutureOr<Object?>>>() x258;
  void Function<Y extends FinvCyclicCoBound<Function(Function(dynamic))>>()
      x259;
  void Function<Y extends FinvCyclicCoBound<Function(Function(void))>>() x260;
  void Function<Y extends FinvCyclicCoBound<Function(Function(Object?))>>()
      x261;
  void Function<
          Y extends FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>>()
      x262;
  void Function<
      Y extends FinvCyclicCoBound<Function(Function(FutureOr<void>))>>() x263;
  void Function<
          Y extends FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>>()
      x264;
  void Function<Y extends A<FinvBound<dynamic>>>() x265;
  void Function<Y extends A<FinvBound<void>>>() x266;
  void Function<Y extends A<FinvBound<Object?>>>() x267;
  void Function<Y extends A<FinvBound<FutureOr<dynamic>>>>() x268;
  void Function<Y extends A<FinvBound<FutureOr<void>>>>() x269;
  void Function<Y extends A<FinvBound<FutureOr<Object?>>>>() x270;
  void Function<Y extends A<FinvCyclicBound<dynamic>>>() x271;
  void Function<Y extends A<FinvCyclicBound<void>>>() x272;
  void Function<Y extends A<FinvCyclicBound<Object?>>>() x273;
  void Function<Y extends A<FinvCyclicBound<FutureOr<dynamic>>>>() x274;
  void Function<Y extends A<FinvCyclicBound<FutureOr<void>>>>() x275;
  void Function<Y extends A<FinvCyclicBound<FutureOr<Object?>>>>() x276;
  void Function<Y extends A<FinvCyclicBound<A<dynamic>>>>() x277;
  void Function<Y extends A<FinvCyclicBound<A<void>>>>() x278;
  void Function<Y extends A<FinvCyclicBound<A<Object?>>>>() x279;
  void Function<Y extends A<FinvCyclicBound<A<FutureOr<dynamic>>>>>() x280;
  void Function<Y extends A<FinvCyclicBound<A<FutureOr<void>>>>>() x281;
  void Function<Y extends A<FinvCyclicBound<A<FutureOr<Object?>>>>>() x282;
  void Function<Y extends A<FinvCyclicBound<A<A<dynamic>>>>>() x283;
  void Function<Y extends A<FinvCyclicBound<A<A<void>>>>>() x284;
  void Function<Y extends A<FinvCyclicBound<A<A<Object?>>>>>() x285;
  void Function<Y extends A<FinvCyclicBound<A<A<FutureOr<dynamic>>>>>>() x286;
  void Function<Y extends A<FinvCyclicBound<A<A<FutureOr<void>>>>>>() x287;
  void Function<Y extends A<FinvCyclicBound<A<A<FutureOr<Object?>>>>>>() x288;
  void Function<Y extends A<FinvCyclicCoBound<dynamic>>>() x289;
  void Function<Y extends A<FinvCyclicCoBound<void>>>() x290;
  void Function<Y extends A<FinvCyclicCoBound<Object?>>>() x291;
  void Function<Y extends A<FinvCyclicCoBound<FutureOr<dynamic>>>>() x292;
  void Function<Y extends A<FinvCyclicCoBound<FutureOr<void>>>>() x293;
  void Function<Y extends A<FinvCyclicCoBound<FutureOr<Object?>>>>() x294;
  void Function<Y extends A<FinvCyclicCoBound<Function(Function(dynamic))>>>()
      x295;
  void Function<Y extends A<FinvCyclicCoBound<Function(Function(void))>>>()
      x296;
  void Function<Y extends A<FinvCyclicCoBound<Function(Function(Object?))>>>()
      x297;
  void Function<
      Y extends A<
          FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>>>() x298;
  void Function<
          Y extends A<FinvCyclicCoBound<Function(Function(FutureOr<void>))>>>()
      x299;
  void Function<
      Y extends A<
          FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>>>() x300;
  Finv<FinvBound<dynamic>> x301;
  Finv<FinvBound<void>> x302;
  Finv<FinvBound<Object?>> x303;
  Finv<FinvBound<FutureOr<dynamic>>> x304;
  Finv<FinvBound<FutureOr<void>>> x305;
  Finv<FinvBound<FutureOr<Object?>>> x306;
  Finv<FinvCyclicBound<dynamic>> x307;
  Finv<FinvCyclicBound<void>> x308;
  Finv<FinvCyclicBound<Object?>> x309;
  Finv<FinvCyclicBound<FutureOr<dynamic>>> x310;
  Finv<FinvCyclicBound<FutureOr<void>>> x311;
  Finv<FinvCyclicBound<FutureOr<Object?>>> x312;
  Finv<FinvCyclicBound<A<dynamic>>> x313;
  Finv<FinvCyclicBound<A<void>>> x314;
  Finv<FinvCyclicBound<A<Object?>>> x315;
  Finv<FinvCyclicBound<A<FutureOr<dynamic>>>> x316;
  Finv<FinvCyclicBound<A<FutureOr<void>>>> x317;
  Finv<FinvCyclicBound<A<FutureOr<Object?>>>> x318;
  Finv<FinvCyclicBound<A<A<dynamic>>>> x319;
  Finv<FinvCyclicBound<A<A<void>>>> x320;
  Finv<FinvCyclicBound<A<A<Object?>>>> x321;
  Finv<FinvCyclicBound<A<A<FutureOr<dynamic>>>>> x322;
  Finv<FinvCyclicBound<A<A<FutureOr<void>>>>> x323;
  Finv<FinvCyclicBound<A<A<FutureOr<Object?>>>>> x324;
  Finv<FinvCyclicCoBound<dynamic>> x325;
  Finv<FinvCyclicCoBound<void>> x326;
  Finv<FinvCyclicCoBound<Object?>> x327;
  Finv<FinvCyclicCoBound<FutureOr<dynamic>>> x328;
  Finv<FinvCyclicCoBound<FutureOr<void>>> x329;
  Finv<FinvCyclicCoBound<FutureOr<Object?>>> x330;
  Finv<FinvCyclicCoBound<Function(Function(dynamic))>> x331;
  Finv<FinvCyclicCoBound<Function(Function(void))>> x332;
  Finv<FinvCyclicCoBound<Function(Function(Object?))>> x333;
  Finv<FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x334;
  Finv<FinvCyclicCoBound<Function(Function(FutureOr<void>))>> x335;
  Finv<FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>> x336;
  Funu<FinvBound<dynamic>> x337;
  Funu<FinvBound<void>> x338;
  Funu<FinvBound<Object?>> x339;
  Funu<FinvBound<FutureOr<dynamic>>> x340;
  Funu<FinvBound<FutureOr<void>>> x341;
  Funu<FinvBound<FutureOr<Object?>>> x342;
  Funu<FinvCyclicBound<dynamic>> x343;
  Funu<FinvCyclicBound<void>> x344;
  Funu<FinvCyclicBound<Object?>> x345;
  Funu<FinvCyclicBound<FutureOr<dynamic>>> x346;
  Funu<FinvCyclicBound<FutureOr<void>>> x347;
  Funu<FinvCyclicBound<FutureOr<Object?>>> x348;
  Funu<FinvCyclicBound<A<dynamic>>> x349;
  Funu<FinvCyclicBound<A<void>>> x350;
  Funu<FinvCyclicBound<A<Object?>>> x351;
  Funu<FinvCyclicBound<A<FutureOr<dynamic>>>> x352;
  Funu<FinvCyclicBound<A<FutureOr<void>>>> x353;
  Funu<FinvCyclicBound<A<FutureOr<Object?>>>> x354;
  Funu<FinvCyclicBound<A<A<dynamic>>>> x355;
  Funu<FinvCyclicBound<A<A<void>>>> x356;
  Funu<FinvCyclicBound<A<A<Object?>>>> x357;
  Funu<FinvCyclicBound<A<A<FutureOr<dynamic>>>>> x358;
  Funu<FinvCyclicBound<A<A<FutureOr<void>>>>> x359;
  Funu<FinvCyclicBound<A<A<FutureOr<Object?>>>>> x360;
  Funu<FinvCyclicCoBound<dynamic>> x361;
  Funu<FinvCyclicCoBound<void>> x362;
  Funu<FinvCyclicCoBound<Object?>> x363;
  Funu<FinvCyclicCoBound<FutureOr<dynamic>>> x364;
  Funu<FinvCyclicCoBound<FutureOr<void>>> x365;
  Funu<FinvCyclicCoBound<FutureOr<Object?>>> x366;
  Funu<FinvCyclicCoBound<Function(Function(dynamic))>> x367;
  Funu<FinvCyclicCoBound<Function(Function(void))>> x368;
  Funu<FinvCyclicCoBound<Function(Function(Object?))>> x369;
  Funu<FinvCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x370;
  Funu<FinvCyclicCoBound<Function(Function(FutureOr<void>))>> x371;
  Funu<FinvCyclicCoBound<Function(Function(FutureOr<Object?>))>> x372;
}

void testVarianceLessSuperbound<N extends Never>() {
  // Bottom type in a variance-less position, regular-bounded.
  FunuBound<Never> x1;
  FunuBound<N> x2;
  FunuCyclicBound<Never> x3;
  FunuCyclicBound<N> x4;
  FunuCyclicBound<A<Never>> x5;
  FunuCyclicBound<A<N>> x6;
  FunuCyclicBound<A<A<Never>>> x7;
  FunuCyclicBound<A<A<N>>> x8;
  FunuCyclicCoBound<Never> x9;
  FunuCyclicCoBound<N> x10;
  FunuCyclicCoBound<Function(Function(Never))> x11;
  FunuCyclicCoBound<Function(Function(N))> x12;
  CFunu<Funu<Never>> x13;
  CFunu<Funu<N>> x14;
  CFunu<Funu<Funu<Never>>> x15;
  CFunu<Funu<Funu<N>>> x16;

  // Top type in a variance-less position, super-bounded.
  FunuBound<dynamic> x17;
  FunuBound<void> x18;
  FunuBound<Object?> x19;
  FunuBound<FutureOr<dynamic>> x20;
  FunuBound<FutureOr<void>> x21;
  FunuBound<FutureOr<Object?>> x22;
  FunuCyclicBound<dynamic> x23;
  FunuCyclicBound<void> x24;
  FunuCyclicBound<Object?> x25;
  FunuCyclicBound<FutureOr<dynamic>> x26;
  FunuCyclicBound<FutureOr<void>> x27;
  FunuCyclicBound<FutureOr<Object?>> x28;
  FunuCyclicBound<A<dynamic>> x29;
  FunuCyclicBound<A<void>> x30;
  FunuCyclicBound<A<Object?>> x31;
  FunuCyclicBound<A<FutureOr<dynamic>>> x32;
  FunuCyclicBound<A<FutureOr<void>>> x33;
  FunuCyclicBound<A<FutureOr<Object?>>> x34;
  FunuCyclicBound<A<A<dynamic>>> x35;
  FunuCyclicBound<A<A<void>>> x36;
  FunuCyclicBound<A<A<Object?>>> x37;
  FunuCyclicBound<A<A<FutureOr<dynamic>>>> x38;
  FunuCyclicBound<A<A<FutureOr<void>>>> x39;
  FunuCyclicBound<A<A<FutureOr<Object?>>>> x40;
  FunuCyclicCoBound<dynamic> x41;
  FunuCyclicCoBound<void> x42;
  FunuCyclicCoBound<Object?> x43;
  FunuCyclicCoBound<FutureOr<dynamic>> x44;
  FunuCyclicCoBound<FutureOr<void>> x45;
  FunuCyclicCoBound<FutureOr<Object?>> x46;
  FunuCyclicCoBound<Function(dynamic)> x47;
  FunuCyclicCoBound<Function(void)> x48;
  FunuCyclicCoBound<Function(Object?)> x49;
  FunuCyclicCoBound<Function(FutureOr<dynamic>)> x50;
  FunuCyclicCoBound<Function(FutureOr<void>)> x51;
  FunuCyclicCoBound<Function(FutureOr<Object?>)> x52;
  FunuCyclicCoBound<Function(Function(dynamic))> x53;
  FunuCyclicCoBound<Function(Function(void))> x54;
  FunuCyclicCoBound<Function(Function(Object?))> x55;
  FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))> x56;
  FunuCyclicCoBound<Function(Function(FutureOr<void>))> x57;
  FunuCyclicCoBound<Function(Function(FutureOr<Object?>))> x58;
  CFunu<Funu<dynamic>> x59;
  CFunu<Funu<void>> x60;
  CFunu<Funu<Object?>> x61;
  CFunu<Funu<FutureOr<dynamic>>> x62;
  CFunu<Funu<FutureOr<void>>> x63;
  CFunu<Funu<FutureOr<Object?>>> x64;
  CFunu<Funu<Funu<dynamic>>> x65;
  CFunu<Funu<Funu<void>>> x66;
  CFunu<Funu<Funu<Object?>>> x67;
  CFunu<Funu<Funu<FutureOr<dynamic>>>> x68;
  CFunu<Funu<Funu<FutureOr<void>>>> x69;
  CFunu<Funu<Funu<FutureOr<Object?>>>> x70;

  // Super-bounded types in a context.
  A<FunuBound<dynamic>> x71;
  A<FunuBound<void>> x72;
  A<FunuBound<Object?>> x73;
  A<FunuBound<FutureOr<dynamic>>> x74;
  A<FunuBound<FutureOr<void>>> x75;
  A<FunuBound<FutureOr<Object?>>> x76;
  A<FunuCyclicBound<dynamic>> x77;
  A<FunuCyclicBound<void>> x78;
  A<FunuCyclicBound<Object?>> x79;
  A<FunuCyclicBound<FutureOr<dynamic>>> x80;
  A<FunuCyclicBound<FutureOr<void>>> x81;
  A<FunuCyclicBound<FutureOr<Object?>>> x82;
  A<FunuCyclicBound<A<dynamic>>> x83;
  A<FunuCyclicBound<A<void>>> x84;
  A<FunuCyclicBound<A<Object?>>> x85;
  A<FunuCyclicBound<A<FutureOr<dynamic>>>> x86;
  A<FunuCyclicBound<A<FutureOr<void>>>> x87;
  A<FunuCyclicBound<A<FutureOr<Object?>>>> x88;
  A<FunuCyclicBound<A<A<dynamic>>>> x89;
  A<FunuCyclicBound<A<A<void>>>> x90;
  A<FunuCyclicBound<A<A<Object?>>>> x91;
  A<FunuCyclicBound<A<A<FutureOr<dynamic>>>>> x92;
  A<FunuCyclicBound<A<A<FutureOr<void>>>>> x93;
  A<FunuCyclicBound<A<A<FutureOr<Object?>>>>> x94;
  A<FunuCyclicCoBound<dynamic>> x95;
  A<FunuCyclicCoBound<void>> x96;
  A<FunuCyclicCoBound<Object?>> x97;
  A<FunuCyclicCoBound<FutureOr<dynamic>>> x98;
  A<FunuCyclicCoBound<FutureOr<void>>> x99;
  A<FunuCyclicCoBound<FutureOr<Object?>>> x100;
  A<FunuCyclicCoBound<Function(dynamic)>> x101;
  A<FunuCyclicCoBound<Function(void)>> x102;
  A<FunuCyclicCoBound<Function(Object?)>> x103;
  A<FunuCyclicCoBound<Function(FutureOr<dynamic>)>> x104;
  A<FunuCyclicCoBound<Function(FutureOr<void>)>> x105;
  A<FunuCyclicCoBound<Function(FutureOr<Object?>)>> x106;
  A<FunuCyclicCoBound<Function(Function(dynamic))>> x107;
  A<FunuCyclicCoBound<Function(Function(void))>> x108;
  A<FunuCyclicCoBound<Function(Function(Object?))>> x109;
  A<FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x110;
  A<FunuCyclicCoBound<Function(Function(FutureOr<void>))>> x111;
  A<FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>> x112;
  A<CFunu<Funu<dynamic>>> x113;
  A<CFunu<Funu<void>>> x114;
  A<CFunu<Funu<Object?>>> x115;
  A<CFunu<Funu<FutureOr<dynamic>>>> x116;
  A<CFunu<Funu<FutureOr<void>>>> x117;
  A<CFunu<Funu<FutureOr<Object?>>>> x118;
  A<CFunu<Funu<Funu<dynamic>>>> x119;
  A<CFunu<Funu<Funu<void>>>> x120;
  A<CFunu<Funu<Funu<Object?>>>> x121;
  A<CFunu<Funu<Funu<FutureOr<dynamic>>>>> x122;
  A<CFunu<Funu<Funu<FutureOr<void>>>>> x123;
  A<CFunu<Funu<Funu<FutureOr<Object?>>>>> x124;
  FunuBound<dynamic> Function() x125;
  FunuBound<void> Function() x126;
  FunuBound<Object?> Function() x127;
  FunuBound<FutureOr<dynamic>> Function() x128;
  FunuBound<FutureOr<void>> Function() x129;
  FunuBound<FutureOr<Object?>> Function() x130;
  FunuCyclicBound<dynamic> Function() x131;
  FunuCyclicBound<void> Function() x132;
  FunuCyclicBound<Object?> Function() x133;
  FunuCyclicBound<FutureOr<dynamic>> Function() x134;
  FunuCyclicBound<FutureOr<void>> Function() x135;
  FunuCyclicBound<FutureOr<Object?>> Function() x136;
  FunuCyclicBound<A<dynamic>> Function() x137;
  FunuCyclicBound<A<void>> Function() x138;
  FunuCyclicBound<A<Object?>> Function() x139;
  FunuCyclicBound<A<FutureOr<dynamic>>> Function() x140;
  FunuCyclicBound<A<FutureOr<void>>> Function() x141;
  FunuCyclicBound<A<FutureOr<Object?>>> Function() x142;
  FunuCyclicBound<A<A<dynamic>>> Function() x143;
  FunuCyclicBound<A<A<void>>> Function() x144;
  FunuCyclicBound<A<A<Object?>>> Function() x145;
  FunuCyclicBound<A<A<FutureOr<dynamic>>>> Function() x146;
  FunuCyclicBound<A<A<FutureOr<void>>>> Function() x147;
  FunuCyclicBound<A<A<FutureOr<Object?>>>> Function() x148;
  FunuCyclicCoBound<dynamic> Function() x149;
  FunuCyclicCoBound<void> Function() x150;
  FunuCyclicCoBound<Object?> Function() x151;
  FunuCyclicCoBound<FutureOr<dynamic>> Function() x152;
  FunuCyclicCoBound<FutureOr<void>> Function() x153;
  FunuCyclicCoBound<FutureOr<Object?>> Function() x154;
  FunuCyclicCoBound<Function(dynamic)> Function() x155;
  FunuCyclicCoBound<Function(void)> Function() x156;
  FunuCyclicCoBound<Function(Object?)> Function() x157;
  FunuCyclicCoBound<Function(FutureOr<dynamic>)> Function() x158;
  FunuCyclicCoBound<Function(FutureOr<void>)> Function() x159;
  FunuCyclicCoBound<Function(FutureOr<Object?>)> Function() x160;
  FunuCyclicCoBound<Function(Function(dynamic))> Function() x161;
  FunuCyclicCoBound<Function(Function(void))> Function() x162;
  FunuCyclicCoBound<Function(Function(Object?))> Function() x163;
  FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))> Function() x164;
  FunuCyclicCoBound<Function(Function(FutureOr<void>))> Function() x165;
  FunuCyclicCoBound<Function(Function(FutureOr<Object?>))> Function() x166;
  CFunu<Funu<dynamic>> Function() x167;
  CFunu<Funu<void>> Function() x168;
  CFunu<Funu<Object?>> Function() x169;
  CFunu<Funu<FutureOr<dynamic>>> Function() x170;
  CFunu<Funu<FutureOr<void>>> Function() x171;
  CFunu<Funu<FutureOr<Object?>>> Function() x172;
  CFunu<Funu<Funu<dynamic>>> Function() x173;
  CFunu<Funu<Funu<void>>> Function() x174;
  CFunu<Funu<Funu<Object?>>> Function() x175;
  CFunu<Funu<Funu<FutureOr<dynamic>>>> Function() x176;
  CFunu<Funu<Funu<FutureOr<void>>>> Function() x177;
  CFunu<Funu<Funu<FutureOr<Object?>>>> Function() x178;
  void Function(void Function(FunuBound<dynamic>)) x179;
  void Function(void Function(FunuBound<void>)) x180;
  void Function(void Function(FunuBound<Object?>)) x181;
  void Function(void Function(FunuBound<FutureOr<dynamic>>)) x182;
  void Function(void Function(FunuBound<FutureOr<void>>)) x183;
  void Function(void Function(FunuBound<FutureOr<Object?>>)) x184;
  void Function(void Function(FunuCyclicBound<dynamic>)) x185;
  void Function(void Function(FunuCyclicBound<void>)) x186;
  void Function(void Function(FunuCyclicBound<Object?>)) x187;
  void Function(void Function(FunuCyclicBound<FutureOr<dynamic>>)) x188;
  void Function(void Function(FunuCyclicBound<FutureOr<void>>)) x189;
  void Function(void Function(FunuCyclicBound<FutureOr<Object?>>)) x190;
  void Function(void Function(FunuCyclicBound<A<dynamic>>)) x191;
  void Function(void Function(FunuCyclicBound<A<void>>)) x192;
  void Function(void Function(FunuCyclicBound<A<Object?>>)) x193;
  void Function(void Function(FunuCyclicBound<A<FutureOr<dynamic>>>)) x194;
  void Function(void Function(FunuCyclicBound<A<FutureOr<void>>>)) x195;
  void Function(void Function(FunuCyclicBound<A<FutureOr<Object?>>>)) x196;
  void Function(void Function(FunuCyclicBound<A<A<dynamic>>>)) x197;
  void Function(void Function(FunuCyclicBound<A<A<void>>>)) x198;
  void Function(void Function(FunuCyclicBound<A<A<Object?>>>)) x199;
  void Function(void Function(FunuCyclicBound<A<A<FutureOr<dynamic>>>>)) x200;
  void Function(void Function(FunuCyclicBound<A<A<FutureOr<void>>>>)) x201;
  void Function(void Function(FunuCyclicBound<A<A<FutureOr<Object?>>>>)) x202;
  void Function(void Function(FunuCyclicCoBound<dynamic>)) x203;
  void Function(void Function(FunuCyclicCoBound<void>)) x204;
  void Function(void Function(FunuCyclicCoBound<Object?>)) x205;
  void Function(void Function(FunuCyclicCoBound<FutureOr<dynamic>>)) x206;
  void Function(void Function(FunuCyclicCoBound<FutureOr<void>>)) x207;
  void Function(void Function(FunuCyclicCoBound<FutureOr<Object?>>)) x208;
  void Function(void Function(FunuCyclicCoBound<Function(dynamic)>)) x209;
  void Function(void Function(FunuCyclicCoBound<Function(void)>)) x210;
  void Function(void Function(FunuCyclicCoBound<Function(Object?)>)) x211;
  void Function(void Function(FunuCyclicCoBound<Function(FutureOr<dynamic>)>))
      x212;
  void Function(void Function(FunuCyclicCoBound<Function(FutureOr<void>)>))
      x213;
  void Function(void Function(FunuCyclicCoBound<Function(FutureOr<Object?>)>))
      x214;
  void Function(void Function(FunuCyclicCoBound<Function(Function(dynamic))>))
      x215;
  void Function(void Function(FunuCyclicCoBound<Function(Function(void))>))
      x216;
  void Function(void Function(FunuCyclicCoBound<Function(Function(Object?))>))
      x217;
  void Function(
      void Function(
          FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>)) x218;
  void Function(
          void Function(FunuCyclicCoBound<Function(Function(FutureOr<void>))>))
      x219;
  void Function(
      void Function(
          FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>)) x220;
  void Function(void Function(CFunu<Funu<dynamic>>)) x221;
  void Function(void Function(CFunu<Funu<void>>)) x222;
  void Function(void Function(CFunu<Funu<Object?>>)) x223;
  void Function(void Function(CFunu<Funu<FutureOr<dynamic>>>)) x224;
  void Function(void Function(CFunu<Funu<FutureOr<void>>>)) x225;
  void Function(void Function(CFunu<Funu<FutureOr<Object?>>>)) x226;
  void Function(void Function(CFunu<Funu<Funu<dynamic>>>)) x227;
  void Function(void Function(CFunu<Funu<Funu<void>>>)) x228;
  void Function(void Function(CFunu<Funu<Funu<Object?>>>)) x229;
  void Function(void Function(CFunu<Funu<Funu<FutureOr<dynamic>>>>)) x230;
  void Function(void Function(CFunu<Funu<Funu<FutureOr<void>>>>)) x231;
  void Function(void Function(CFunu<Funu<Funu<FutureOr<Object?>>>>)) x232;
  void Function(FunuBound<dynamic>) x233;
  void Function(FunuBound<void>) x234;
  void Function(FunuBound<Object?>) x235;
  void Function(FunuBound<FutureOr<dynamic>>) x236;
  void Function(FunuBound<FutureOr<void>>) x237;
  void Function(FunuBound<FutureOr<Object?>>) x238;
  void Function(FunuCyclicBound<dynamic>) x239;
  void Function(FunuCyclicBound<void>) x240;
  void Function(FunuCyclicBound<Object?>) x241;
  void Function(FunuCyclicBound<FutureOr<dynamic>>) x242;
  void Function(FunuCyclicBound<FutureOr<void>>) x243;
  void Function(FunuCyclicBound<FutureOr<Object?>>) x244;
  void Function(FunuCyclicBound<A<dynamic>>) x245;
  void Function(FunuCyclicBound<A<void>>) x246;
  void Function(FunuCyclicBound<A<Object?>>) x247;
  void Function(FunuCyclicBound<A<FutureOr<dynamic>>>) x248;
  void Function(FunuCyclicBound<A<FutureOr<void>>>) x249;
  void Function(FunuCyclicBound<A<FutureOr<Object?>>>) x250;
  void Function(FunuCyclicBound<A<A<dynamic>>>) x251;
  void Function(FunuCyclicBound<A<A<void>>>) x252;
  void Function(FunuCyclicBound<A<A<Object?>>>) x253;
  void Function(FunuCyclicBound<A<A<FutureOr<dynamic>>>>) x254;
  void Function(FunuCyclicBound<A<A<FutureOr<void>>>>) x255;
  void Function(FunuCyclicBound<A<A<FutureOr<Object?>>>>) x256;
  void Function(FunuCyclicCoBound<dynamic>) x257;
  void Function(FunuCyclicCoBound<void>) x258;
  void Function(FunuCyclicCoBound<Object?>) x259;
  void Function(FunuCyclicCoBound<FutureOr<dynamic>>) x260;
  void Function(FunuCyclicCoBound<FutureOr<void>>) x261;
  void Function(FunuCyclicCoBound<FutureOr<Object?>>) x262;
  void Function(FunuCyclicCoBound<Function(dynamic)>) x263;
  void Function(FunuCyclicCoBound<Function(void)>) x264;
  void Function(FunuCyclicCoBound<Function(Object?)>) x265;
  void Function(FunuCyclicCoBound<Function(FutureOr<dynamic>)>) x266;
  void Function(FunuCyclicCoBound<Function(FutureOr<void>)>) x267;
  void Function(FunuCyclicCoBound<Function(FutureOr<Object?>)>) x268;
  void Function(FunuCyclicCoBound<Function(Function(dynamic))>) x269;
  void Function(FunuCyclicCoBound<Function(Function(void))>) x270;
  void Function(FunuCyclicCoBound<Function(Function(Object?))>) x271;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>) x272;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<void>))>) x273;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>) x274;
  void Function(CFunu<Funu<dynamic>>) x275;
  void Function(CFunu<Funu<void>>) x276;
  void Function(CFunu<Funu<Object?>>) x277;
  void Function(CFunu<Funu<FutureOr<dynamic>>>) x278;
  void Function(CFunu<Funu<FutureOr<void>>>) x279;
  void Function(CFunu<Funu<FutureOr<Object?>>>) x280;
  void Function(CFunu<Funu<Funu<dynamic>>>) x281;
  void Function(CFunu<Funu<Funu<void>>>) x282;
  void Function(CFunu<Funu<Funu<Object?>>>) x283;
  void Function(CFunu<Funu<Funu<FutureOr<dynamic>>>>) x284;
  void Function(CFunu<Funu<Funu<FutureOr<void>>>>) x285;
  void Function(CFunu<Funu<Funu<FutureOr<Object?>>>>) x286;
  void Function(FunuBound<dynamic>) Function() x287;
  void Function(FunuBound<void>) Function() x288;
  void Function(FunuBound<Object?>) Function() x289;
  void Function(FunuBound<FutureOr<dynamic>>) Function() x290;
  void Function(FunuBound<FutureOr<void>>) Function() x291;
  void Function(FunuBound<FutureOr<Object?>>) Function() x292;
  void Function(FunuCyclicBound<dynamic>) Function() x293;
  void Function(FunuCyclicBound<void>) Function() x294;
  void Function(FunuCyclicBound<Object?>) Function() x295;
  void Function(FunuCyclicBound<FutureOr<dynamic>>) Function() x296;
  void Function(FunuCyclicBound<FutureOr<void>>) Function() x297;
  void Function(FunuCyclicBound<FutureOr<Object?>>) Function() x298;
  void Function(FunuCyclicBound<A<dynamic>>) Function() x299;
  void Function(FunuCyclicBound<A<void>>) Function() x300;
  void Function(FunuCyclicBound<A<Object?>>) Function() x301;
  void Function(FunuCyclicBound<A<FutureOr<dynamic>>>) Function() x302;
  void Function(FunuCyclicBound<A<FutureOr<void>>>) Function() x303;
  void Function(FunuCyclicBound<A<FutureOr<Object?>>>) Function() x304;
  void Function(FunuCyclicBound<A<A<dynamic>>>) Function() x305;
  void Function(FunuCyclicBound<A<A<void>>>) Function() x306;
  void Function(FunuCyclicBound<A<A<Object?>>>) Function() x307;
  void Function(FunuCyclicBound<A<A<FutureOr<dynamic>>>>) Function() x308;
  void Function(FunuCyclicBound<A<A<FutureOr<void>>>>) Function() x309;
  void Function(FunuCyclicBound<A<A<FutureOr<Object?>>>>) Function() x310;
  void Function(FunuCyclicCoBound<dynamic>) Function() x311;
  void Function(FunuCyclicCoBound<void>) Function() x312;
  void Function(FunuCyclicCoBound<Object?>) Function() x313;
  void Function(FunuCyclicCoBound<FutureOr<dynamic>>) Function() x314;
  void Function(FunuCyclicCoBound<FutureOr<void>>) Function() x315;
  void Function(FunuCyclicCoBound<FutureOr<Object?>>) Function() x316;
  void Function(FunuCyclicCoBound<Function(dynamic)>) Function() x317;
  void Function(FunuCyclicCoBound<Function(void)>) Function() x318;
  void Function(FunuCyclicCoBound<Function(Object?)>) Function() x319;
  void Function(FunuCyclicCoBound<Function(FutureOr<dynamic>)>) Function() x320;
  void Function(FunuCyclicCoBound<Function(FutureOr<void>)>) Function() x321;
  void Function(FunuCyclicCoBound<Function(FutureOr<Object?>)>) Function() x322;
  void Function(FunuCyclicCoBound<Function(Function(dynamic))>) Function() x323;
  void Function(FunuCyclicCoBound<Function(Function(void))>) Function() x324;
  void Function(FunuCyclicCoBound<Function(Function(Object?))>) Function() x325;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>)
      Function() x326;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<void>))>)
      Function() x327;
  void Function(FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>)
      Function() x328;
  void Function(CFunu<Funu<dynamic>>) Function() x329;
  void Function(CFunu<Funu<void>>) Function() x330;
  void Function(CFunu<Funu<Object?>>) Function() x331;
  void Function(CFunu<Funu<FutureOr<dynamic>>>) Function() x332;
  void Function(CFunu<Funu<FutureOr<void>>>) Function() x333;
  void Function(CFunu<Funu<FutureOr<Object?>>>) Function() x334;
  void Function(CFunu<Funu<Funu<dynamic>>>) Function() x335;
  void Function(CFunu<Funu<Funu<void>>>) Function() x336;
  void Function(CFunu<Funu<Funu<Object?>>>) Function() x337;
  void Function(CFunu<Funu<Funu<FutureOr<dynamic>>>>) Function() x338;
  void Function(CFunu<Funu<Funu<FutureOr<void>>>>) Function() x339;
  void Function(CFunu<Funu<Funu<FutureOr<Object?>>>>) Function() x340;
  void Function<Y extends FunuBound<dynamic>>() x341;
  void Function<Y extends FunuBound<void>>() x342;
  void Function<Y extends FunuBound<Object?>>() x343;
  void Function<Y extends FunuBound<FutureOr<dynamic>>>() x344;
  void Function<Y extends FunuBound<FutureOr<void>>>() x345;
  void Function<Y extends FunuBound<FutureOr<Object?>>>() x346;
  void Function<Y extends FunuCyclicBound<dynamic>>() x347;
  void Function<Y extends FunuCyclicBound<void>>() x348;
  void Function<Y extends FunuCyclicBound<Object?>>() x349;
  void Function<Y extends FunuCyclicBound<FutureOr<dynamic>>>() x350;
  void Function<Y extends FunuCyclicBound<FutureOr<void>>>() x351;
  void Function<Y extends FunuCyclicBound<FutureOr<Object?>>>() x352;
  void Function<Y extends FunuCyclicBound<A<dynamic>>>() x353;
  void Function<Y extends FunuCyclicBound<A<void>>>() x354;
  void Function<Y extends FunuCyclicBound<A<Object?>>>() x355;
  void Function<Y extends FunuCyclicBound<A<FutureOr<dynamic>>>>() x356;
  void Function<Y extends FunuCyclicBound<A<FutureOr<void>>>>() x357;
  void Function<Y extends FunuCyclicBound<A<FutureOr<Object?>>>>() x358;
  void Function<Y extends FunuCyclicBound<A<A<dynamic>>>>() x359;
  void Function<Y extends FunuCyclicBound<A<A<void>>>>() x360;
  void Function<Y extends FunuCyclicBound<A<A<Object?>>>>() x361;
  void Function<Y extends FunuCyclicBound<A<A<FutureOr<dynamic>>>>>() x362;
  void Function<Y extends FunuCyclicBound<A<A<FutureOr<void>>>>>() x363;
  void Function<Y extends FunuCyclicBound<A<A<FutureOr<Object?>>>>>() x364;
  void Function<Y extends FunuCyclicCoBound<dynamic>>() x365;
  void Function<Y extends FunuCyclicCoBound<void>>() x366;
  void Function<Y extends FunuCyclicCoBound<Object?>>() x367;
  void Function<Y extends FunuCyclicCoBound<FutureOr<dynamic>>>() x368;
  void Function<Y extends FunuCyclicCoBound<FutureOr<void>>>() x369;
  void Function<Y extends FunuCyclicCoBound<FutureOr<Object?>>>() x370;
  void Function<Y extends FunuCyclicCoBound<Function(dynamic)>>() x371;
  void Function<Y extends FunuCyclicCoBound<Function(void)>>() x372;
  void Function<Y extends FunuCyclicCoBound<Function(Object?)>>() x373;
  void Function<Y extends FunuCyclicCoBound<Function(FutureOr<dynamic>)>>()
      x374;
  void Function<Y extends FunuCyclicCoBound<Function(FutureOr<void>)>>() x375;
  void Function<Y extends FunuCyclicCoBound<Function(FutureOr<Object?>)>>()
      x376;
  void Function<Y extends FunuCyclicCoBound<Function(Function(dynamic))>>()
      x377;
  void Function<Y extends FunuCyclicCoBound<Function(Function(void))>>() x378;
  void Function<Y extends FunuCyclicCoBound<Function(Function(Object?))>>()
      x379;
  void Function<
          Y extends FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>>()
      x380;
  void Function<
      Y extends FunuCyclicCoBound<Function(Function(FutureOr<void>))>>() x381;
  void Function<
          Y extends FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>>()
      x382;
  void Function<Y extends CFunu<Funu<dynamic>>>() x383;
  void Function<Y extends CFunu<Funu<void>>>() x384;
  void Function<Y extends CFunu<Funu<Object?>>>() x385;
  void Function<Y extends CFunu<Funu<FutureOr<dynamic>>>>() x386;
  void Function<Y extends CFunu<Funu<FutureOr<void>>>>() x387;
  void Function<Y extends CFunu<Funu<FutureOr<Object?>>>>() x388;
  void Function<Y extends CFunu<Funu<Funu<dynamic>>>>() x389;
  void Function<Y extends CFunu<Funu<Funu<void>>>>() x390;
  void Function<Y extends CFunu<Funu<Funu<Object?>>>>() x391;
  void Function<Y extends CFunu<Funu<Funu<FutureOr<dynamic>>>>>() x392;
  void Function<Y extends CFunu<Funu<Funu<FutureOr<void>>>>>() x393;
  void Function<Y extends CFunu<Funu<Funu<FutureOr<Object?>>>>>() x394;
  void Function<Y extends A<FunuBound<dynamic>>>() x395;
  void Function<Y extends A<FunuBound<void>>>() x396;
  void Function<Y extends A<FunuBound<Object?>>>() x397;
  void Function<Y extends A<FunuBound<FutureOr<dynamic>>>>() x398;
  void Function<Y extends A<FunuBound<FutureOr<void>>>>() x399;
  void Function<Y extends A<FunuBound<FutureOr<Object?>>>>() x400;
  void Function<Y extends A<FunuCyclicBound<dynamic>>>() x401;
  void Function<Y extends A<FunuCyclicBound<void>>>() x402;
  void Function<Y extends A<FunuCyclicBound<Object?>>>() x403;
  void Function<Y extends A<FunuCyclicBound<FutureOr<dynamic>>>>() x404;
  void Function<Y extends A<FunuCyclicBound<FutureOr<void>>>>() x405;
  void Function<Y extends A<FunuCyclicBound<FutureOr<Object?>>>>() x406;
  void Function<Y extends A<FunuCyclicBound<A<dynamic>>>>() x407;
  void Function<Y extends A<FunuCyclicBound<A<void>>>>() x408;
  void Function<Y extends A<FunuCyclicBound<A<Object?>>>>() x409;
  void Function<Y extends A<FunuCyclicBound<A<FutureOr<dynamic>>>>>() x410;
  void Function<Y extends A<FunuCyclicBound<A<FutureOr<void>>>>>() x411;
  void Function<Y extends A<FunuCyclicBound<A<FutureOr<Object?>>>>>() x412;
  void Function<Y extends A<FunuCyclicBound<A<A<dynamic>>>>>() x413;
  void Function<Y extends A<FunuCyclicBound<A<A<void>>>>>() x414;
  void Function<Y extends A<FunuCyclicBound<A<A<Object?>>>>>() x415;
  void Function<Y extends A<FunuCyclicBound<A<A<FutureOr<dynamic>>>>>>() x416;
  void Function<Y extends A<FunuCyclicBound<A<A<FutureOr<void>>>>>>() x417;
  void Function<Y extends A<FunuCyclicBound<A<A<FutureOr<Object?>>>>>>() x418;
  void Function<Y extends A<FunuCyclicCoBound<dynamic>>>() x419;
  void Function<Y extends A<FunuCyclicCoBound<void>>>() x420;
  void Function<Y extends A<FunuCyclicCoBound<Object?>>>() x421;
  void Function<Y extends A<FunuCyclicCoBound<FutureOr<dynamic>>>>() x422;
  void Function<Y extends A<FunuCyclicCoBound<FutureOr<void>>>>() x423;
  void Function<Y extends A<FunuCyclicCoBound<FutureOr<Object?>>>>() x424;
  void Function<Y extends A<FunuCyclicCoBound<Function(dynamic)>>>() x425;
  void Function<Y extends A<FunuCyclicCoBound<Function(void)>>>() x426;
  void Function<Y extends A<FunuCyclicCoBound<Function(Object?)>>>() x427;
  void Function<Y extends A<FunuCyclicCoBound<Function(FutureOr<dynamic>)>>>()
      x428;
  void Function<Y extends A<FunuCyclicCoBound<Function(FutureOr<void>)>>>()
      x429;
  void Function<Y extends A<FunuCyclicCoBound<Function(FutureOr<Object?>)>>>()
      x430;
  void Function<Y extends A<FunuCyclicCoBound<Function(Function(dynamic))>>>()
      x431;
  void Function<Y extends A<FunuCyclicCoBound<Function(Function(void))>>>()
      x432;
  void Function<Y extends A<FunuCyclicCoBound<Function(Function(Object?))>>>()
      x433;
  void Function<
      Y extends A<
          FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>>>() x434;
  void Function<
          Y extends A<FunuCyclicCoBound<Function(Function(FutureOr<void>))>>>()
      x435;
  void Function<
      Y extends A<
          FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>>>() x436;
  void Function<Y extends A<CFunu<Funu<dynamic>>>>() x437;
  void Function<Y extends A<CFunu<Funu<void>>>>() x438;
  void Function<Y extends A<CFunu<Funu<Object?>>>>() x439;
  void Function<Y extends A<CFunu<Funu<FutureOr<dynamic>>>>>() x440;
  void Function<Y extends A<CFunu<Funu<FutureOr<void>>>>>() x441;
  void Function<Y extends A<CFunu<Funu<FutureOr<Object?>>>>>() x442;
  void Function<Y extends A<CFunu<Funu<Funu<dynamic>>>>>() x443;
  void Function<Y extends A<CFunu<Funu<Funu<void>>>>>() x444;
  void Function<Y extends A<CFunu<Funu<Funu<Object?>>>>>() x445;
  void Function<Y extends A<CFunu<Funu<Funu<FutureOr<dynamic>>>>>>() x446;
  void Function<Y extends A<CFunu<Funu<Funu<FutureOr<void>>>>>>() x447;
  void Function<Y extends A<CFunu<Funu<Funu<FutureOr<Object?>>>>>>() x448;
  Finv<FunuBound<dynamic>> x449;
  Finv<FunuBound<void>> x450;
  Finv<FunuBound<Object?>> x451;
  Finv<FunuBound<FutureOr<dynamic>>> x452;
  Finv<FunuBound<FutureOr<void>>> x453;
  Finv<FunuBound<FutureOr<Object?>>> x454;
  Finv<FunuCyclicBound<dynamic>> x455;
  Finv<FunuCyclicBound<void>> x456;
  Finv<FunuCyclicBound<Object?>> x457;
  Finv<FunuCyclicBound<FutureOr<dynamic>>> x458;
  Finv<FunuCyclicBound<FutureOr<void>>> x459;
  Finv<FunuCyclicBound<FutureOr<Object?>>> x460;
  Finv<FunuCyclicBound<A<dynamic>>> x461;
  Finv<FunuCyclicBound<A<void>>> x462;
  Finv<FunuCyclicBound<A<Object?>>> x463;
  Finv<FunuCyclicBound<A<FutureOr<dynamic>>>> x464;
  Finv<FunuCyclicBound<A<FutureOr<void>>>> x465;
  Finv<FunuCyclicBound<A<FutureOr<Object?>>>> x466;
  Finv<FunuCyclicBound<A<A<dynamic>>>> x467;
  Finv<FunuCyclicBound<A<A<void>>>> x468;
  Finv<FunuCyclicBound<A<A<Object?>>>> x469;
  Finv<FunuCyclicBound<A<A<FutureOr<dynamic>>>>> x470;
  Finv<FunuCyclicBound<A<A<FutureOr<void>>>>> x471;
  Finv<FunuCyclicBound<A<A<FutureOr<Object?>>>>> x472;
  Finv<FunuCyclicCoBound<dynamic>> x473;
  Finv<FunuCyclicCoBound<void>> x474;
  Finv<FunuCyclicCoBound<Object?>> x475;
  Finv<FunuCyclicCoBound<FutureOr<dynamic>>> x476;
  Finv<FunuCyclicCoBound<FutureOr<void>>> x477;
  Finv<FunuCyclicCoBound<FutureOr<Object?>>> x478;
  Finv<FunuCyclicCoBound<Function(dynamic)>> x479;
  Finv<FunuCyclicCoBound<Function(void)>> x480;
  Finv<FunuCyclicCoBound<Function(Object?)>> x481;
  Finv<FunuCyclicCoBound<Function(FutureOr<dynamic>)>> x482;
  Finv<FunuCyclicCoBound<Function(FutureOr<void>)>> x483;
  Finv<FunuCyclicCoBound<Function(FutureOr<Object?>)>> x484;
  Finv<FunuCyclicCoBound<Function(Function(dynamic))>> x485;
  Finv<FunuCyclicCoBound<Function(Function(void))>> x486;
  Finv<FunuCyclicCoBound<Function(Function(Object?))>> x487;
  Finv<FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x488;
  Finv<FunuCyclicCoBound<Function(Function(FutureOr<void>))>> x489;
  Finv<FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>> x490;
  Finv<CFunu<Funu<dynamic>>> x491;
  Finv<CFunu<Funu<void>>> x492;
  Finv<CFunu<Funu<Object?>>> x493;
  Finv<CFunu<Funu<FutureOr<dynamic>>>> x494;
  Finv<CFunu<Funu<FutureOr<void>>>> x495;
  Finv<CFunu<Funu<FutureOr<Object?>>>> x496;
  Finv<CFunu<Funu<Funu<dynamic>>>> x497;
  Finv<CFunu<Funu<Funu<void>>>> x498;
  Finv<CFunu<Funu<Funu<Object?>>>> x499;
  Finv<CFunu<Funu<Funu<FutureOr<dynamic>>>>> x500;
  Finv<CFunu<Funu<Funu<FutureOr<void>>>>> x501;
  Finv<CFunu<Funu<Funu<FutureOr<Object?>>>>> x502;
  Funu<FunuBound<dynamic>> x503;
  Funu<FunuBound<void>> x504;
  Funu<FunuBound<Object?>> x505;
  Funu<FunuBound<FutureOr<dynamic>>> x506;
  Funu<FunuBound<FutureOr<void>>> x507;
  Funu<FunuBound<FutureOr<Object?>>> x508;
  Funu<FunuCyclicBound<dynamic>> x509;
  Funu<FunuCyclicBound<void>> x510;
  Funu<FunuCyclicBound<Object?>> x511;
  Funu<FunuCyclicBound<FutureOr<dynamic>>> x512;
  Funu<FunuCyclicBound<FutureOr<void>>> x513;
  Funu<FunuCyclicBound<FutureOr<Object?>>> x514;
  Funu<FunuCyclicBound<A<dynamic>>> x515;
  Funu<FunuCyclicBound<A<void>>> x516;
  Funu<FunuCyclicBound<A<Object?>>> x517;
  Funu<FunuCyclicBound<A<FutureOr<dynamic>>>> x518;
  Funu<FunuCyclicBound<A<FutureOr<void>>>> x519;
  Funu<FunuCyclicBound<A<FutureOr<Object?>>>> x520;
  Funu<FunuCyclicBound<A<A<dynamic>>>> x521;
  Funu<FunuCyclicBound<A<A<void>>>> x522;
  Funu<FunuCyclicBound<A<A<Object?>>>> x523;
  Funu<FunuCyclicBound<A<A<FutureOr<dynamic>>>>> x524;
  Funu<FunuCyclicBound<A<A<FutureOr<void>>>>> x525;
  Funu<FunuCyclicBound<A<A<FutureOr<Object?>>>>> x526;
  Funu<FunuCyclicCoBound<dynamic>> x527;
  Funu<FunuCyclicCoBound<void>> x528;
  Funu<FunuCyclicCoBound<Object?>> x529;
  Funu<FunuCyclicCoBound<FutureOr<dynamic>>> x530;
  Funu<FunuCyclicCoBound<FutureOr<void>>> x531;
  Funu<FunuCyclicCoBound<FutureOr<Object?>>> x532;
  Funu<FunuCyclicCoBound<Function(dynamic)>> x533;
  Funu<FunuCyclicCoBound<Function(void)>> x534;
  Funu<FunuCyclicCoBound<Function(Object?)>> x535;
  Funu<FunuCyclicCoBound<Function(FutureOr<dynamic>)>> x536;
  Funu<FunuCyclicCoBound<Function(FutureOr<void>)>> x537;
  Funu<FunuCyclicCoBound<Function(FutureOr<Object?>)>> x538;
  Funu<FunuCyclicCoBound<Function(Function(dynamic))>> x539;
  Funu<FunuCyclicCoBound<Function(Function(void))>> x540;
  Funu<FunuCyclicCoBound<Function(Function(Object?))>> x541;
  Funu<FunuCyclicCoBound<Function(Function(FutureOr<dynamic>))>> x542;
  Funu<FunuCyclicCoBound<Function(Function(FutureOr<void>))>> x543;
  Funu<FunuCyclicCoBound<Function(Function(FutureOr<Object?>))>> x544;
  Funu<CFunu<Funu<dynamic>>> x545;
  Funu<CFunu<Funu<void>>> x546;
  Funu<CFunu<Funu<Object?>>> x547;
  Funu<CFunu<Funu<FutureOr<dynamic>>>> x548;
  Funu<CFunu<Funu<FutureOr<void>>>> x549;
  Funu<CFunu<Funu<FutureOr<Object?>>>> x550;
  Funu<CFunu<Funu<Funu<dynamic>>>> x551;
  Funu<CFunu<Funu<Funu<void>>>> x552;
  Funu<CFunu<Funu<Funu<Object?>>>> x553;
  Funu<CFunu<Funu<Funu<FutureOr<dynamic>>>>> x554;
  Funu<CFunu<Funu<Funu<FutureOr<void>>>>> x555;
  Funu<CFunu<Funu<Funu<FutureOr<Object?>>>>> x556;
}

void main() {
  testCovariantSuperbound<Never>();
  testContravariantSuperbound<Never>();
  testInvariantSuperbound<Never>();
  testVarianceLessSuperbound<Never>();
}
