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

typedef G<invariant X1 extends core::Object? = dynamic> = <Y1 extends X1% = dynamic>() → void;
typedef H<invariant X2 extends core::Object? = dynamic> = (<Y2 extends X2% = dynamic>() → void, core::int);
typedef I<invariant X3 extends core::Object? = dynamic> = ({required a: <Y3 extends X3% = dynamic>() → void, required b: core::int});
class A<X1 extends <Y1 extends core::num = dynamic>() → void> extends core::Object {
  synthetic constructor •() → self::A<self::A::X1>
    : super core::Object::•()
    ;
}
class B<X2 extends (<Y2 extends core::num = dynamic>() → void, core::int)> extends core::Object {
  synthetic constructor •() → self::B<self::B::X2>
    : super core::Object::•()
    ;
}
class C<X3 extends ({required a: <Y3 extends core::num = dynamic>() → void, required b: core::int})> extends core::Object {
  synthetic constructor •() → self::C<self::C::X3>
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
