library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
  synthetic constructor •() → self::D<self::D::X, self::D::Y>
    : super core::Object::•()
    ;
}
class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
  synthetic constructor •() → self::E<self::E::X>
    : super core::Object::•()
    ;
}
static field core::List<self::D<(Never, Never) → void, (Never, Never) → void>> ld = core::_GrowableList::•<self::D<(Never, Never) → void, (Never, Never) → void>>(0);
static field core::Map<self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>> md = <self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>>{};
static field core::List<self::E<(Never) → void>> le = core::_GrowableList::•<self::E<(Never) → void>>(0);
static field core::Map<self::E<(Never) → void>, self::E<(Never) → void>> me = <self::E<(Never) → void>, self::E<(Never) → void>>{};
static method main() → dynamic {}
