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 C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
    : super core::Object::•()
    ;
}
class D<X extends self::B<self::D::X, self::D::Y>* = dynamic, Y extends self::C<self::D::X*, self::D::Y>* = dynamic> extends core::Object {
  synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
    : super core::Object::•()
    ;
}
class E<X extends self::B<self::E::X, self::E::Y>* = dynamic, Y extends () →* self::E::X* = dynamic> extends core::Object {
  synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
    : super core::Object::•()
    ;
}
class F<X extends () →* self::F::X = dynamic> extends core::Object {
  synthetic constructor •() → self::F<self::F::X*>*
    : super core::Object::•()
    ;
}
static field dynamic ld = <self::D<dynamic, dynamic>*>[];
static field dynamic md = <self::D<dynamic, dynamic>*, self::D<dynamic, dynamic>*>{};
static field dynamic le = <self::E<dynamic, dynamic>*>[];
static field dynamic me = <self::E<dynamic, dynamic>*, self::E<dynamic, dynamic>*>{};
static field dynamic lf = <self::F<dynamic>*>[];
static field dynamic mf = <self::F<dynamic>*, self::F<dynamic>*>{};
static method main() → dynamic {}
