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

class A<X extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::X%>
    ;
}
class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::X%, self::C::Y>
    ;
}
class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
  synthetic constructor •() → self::D<self::D::X, self::D::Y>
    ;
}
static field self::C<dynamic, (Never) → dynamic> c;
static field self::D<core::num, (Never) → core::num> d;
static method main() → dynamic
  ;
