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

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