library;
import self as self;
import "dart:core" as core;

class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
    : super core::Object::•()
    ;
}
class C1<X extends (self::C1::Y) →* self::C1::X = dynamic, Y extends (self::C1::Y) →* self::C1::X* = dynamic> extends core::Object {
  synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
    : super core::Object::•()
    ;
}
class C2<X extends (self::C2::Y) →* self::C2::X = dynamic, Y extends (self::C2::X*) →* self::C2::Y = dynamic> extends core::Object {
  synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
    : super core::Object::•()
    ;
}
class C3<X extends (self::C3::X, self::C3::Y) →* self::C3::X = dynamic, Y extends (self::C3::X*, self::C3::Y) →* self::C3::X* = dynamic> extends core::Object {
  synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
    : super core::Object::•()
    ;
}
class C4<X extends (self::C4::X, self::C4::Y) →* self::C4::X = dynamic, Y extends (self::C4::X*, self::C4::Y) →* self::C4::Y = dynamic> extends core::Object {
  synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
    : super core::Object::•()
    ;
}
class D1<X extends self::B<self::D1::X, self::D1::Y>* = dynamic, Y extends (self::D1::Y) →* self::D1::X* = dynamic> extends core::Object {
  synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
    : super core::Object::•()
    ;
}
class D2<X extends self::B<self::D2::X, self::D2::Y>* = dynamic, Y extends (self::D2::X*) →* self::D2::Y = dynamic> extends core::Object {
  synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
    : super core::Object::•()
    ;
}
class D3<X extends self::B<self::D3::X, self::D3::Y>* = dynamic, Y extends (self::D3::X*, self::D3::Y) →* self::D3::X* = dynamic> extends core::Object {
  synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
    : super core::Object::•()
    ;
}
class D4<X extends self::B<self::D4::X, self::D4::Y>* = dynamic, Y extends (self::D4::X*, self::D4::Y) →* self::D4::Y = dynamic> extends core::Object {
  synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
    : super core::Object::•()
    ;
}
class E<X extends (self::E::X) →* self::E::X = dynamic> extends core::Object {
  synthetic constructor •() → self::E<self::E::X*>*
    : super core::Object::•()
    ;
}
static field dynamic lc1 = <self::C1<dynamic, dynamic>*>[];
static field dynamic mc1 = <self::C1<dynamic, dynamic>*, self::C1<dynamic, dynamic>*>{};
static field dynamic lc2 = <self::C2<dynamic, dynamic>*>[];
static field dynamic mc2 = <self::C2<dynamic, dynamic>*, self::C2<dynamic, dynamic>*>{};
static field dynamic lc3 = <self::C3<dynamic, dynamic>*>[];
static field dynamic mc3 = <self::C3<dynamic, dynamic>*, self::C3<dynamic, dynamic>*>{};
static field dynamic lc4 = <self::C4<dynamic, dynamic>*>[];
static field dynamic mc4 = <self::C4<dynamic, dynamic>*, self::C4<dynamic, dynamic>*>{};
static field dynamic ld1 = <self::D1<dynamic, dynamic>*>[];
static field dynamic md1 = <self::D1<dynamic, dynamic>*, self::D1<dynamic, dynamic>*>{};
static field dynamic ld2 = <self::D2<dynamic, dynamic>*>[];
static field dynamic md2 = <self::D2<dynamic, dynamic>*, self::D2<dynamic, dynamic>*>{};
static field dynamic ld3 = <self::D3<dynamic, dynamic>*>[];
static field dynamic md3 = <self::D3<dynamic, dynamic>*, self::D3<dynamic, dynamic>*>{};
static field dynamic ld4 = <self::D4<dynamic, dynamic>*>[];
static field dynamic md4 = <self::D4<dynamic, dynamic>*, self::D4<dynamic, dynamic>*>{};
static field dynamic le = <self::E<dynamic>*>[];
static field dynamic me = <self::E<dynamic>*, self::E<dynamic>*>{};
static method main() → dynamic {}
