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 •() → void
    : super core::Object::•()
    ;
}
class C<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    : 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 •() → void
    : 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 •() → void
    : super core::Object::•()
    ;
}
class F<X extends () → self::F::X = dynamic> extends core::Object {
  synthetic constructor •() → void
    : 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 {}
