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

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
class B extends self::A {
  synthetic constructor •() → self::B
    : super self::A::•()
    ;
}
class C extends self::B {
  synthetic constructor •() → self::C
    : super self::B::•()
    ;
}
class D extends self::C {
  synthetic constructor •() → self::D
    : super self::C::•()
    ;
}
class G<T extends self::A> extends core::Object {
  synthetic constructor •() → self::G<self::G::T>
    : super core::Object::•()
    ;
}
class GB extends self::G<self::B> {
  synthetic constructor •() → self::GB
    : super self::G::•()
    ;
}
class GC extends self::G<self::C> {
  synthetic constructor •() → self::GC
    : super self::G::•()
    ;
}
class GD extends self::G<self::D> {
  synthetic constructor •() → self::GD
    : super self::G::•()
    ;
}
class X extends core::Object implements self::A {
  synthetic constructor •() → self::X
    : super core::Object::•()
    ;
}
class Y extends self::X {
  synthetic constructor •() → self::Y
    : super self::X::•()
    ;
}
class Z extends core::Object implements self::Y {
  synthetic constructor •() → self::Z
    : super core::Object::•()
    ;
}
class W extends core::Object implements self::Z {
  synthetic constructor •() → self::W
    : super core::Object::•()
    ;
}
class GX extends core::Object implements self::G<self::A> {
  synthetic constructor •() → self::GX
    : super core::Object::•()
    ;
}
class GY extends self::X implements self::GB {
  synthetic constructor •() → self::GY
    : super self::X::•()
    ;
}
class GZ extends core::Object implements self::Y, self::GC {
  synthetic constructor •() → self::GZ
    : super core::Object::•()
    ;
}
class GW extends core::Object implements self::Z, self::GD {
  synthetic constructor •() → self::GW
    : super core::Object::•()
    ;
}
class GU extends self::GW {
  synthetic constructor •() → self::GU
    : super self::GW::•()
    ;
}
class GV extends self::GU implements self::GW {
  synthetic constructor •() → self::GV
    : super self::GU::•()
    ;
}
class ARO<S extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::ARO<self::ARO::S%>
    : super core::Object::•()
    ;
}
class ARQ<T extends core::Object? = dynamic> extends core::Object implements self::ARO<self::ARQ::T%> {
  synthetic constructor •() → self::ARQ<self::ARQ::T%>
    : super core::Object::•()
    ;
}
class ARN extends self::ARQ<self::A> {
  synthetic constructor •() → self::ARN
    : super self::ARQ::•()
    ;
}
static method main() → dynamic {}
