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

class A extends core::Object {
  synthetic constructor •() → void
    ;
}
class C<T extends self::A> extends core::Object {
  field self::C::T _field;
  synthetic constructor •() → void
    ;
  method foo(self::C::T x) → dynamic
    ;
}
class D extends self::C<self::B> {
  synthetic constructor •() → void
    ;
}
abstract class _Foo&Object&C = core::Object with self::C<self::B> {
}
class Foo extends self::_Foo&Object&C {
  synthetic constructor •() → void
    ;
}
class B extends self::A {
  synthetic constructor •() → void
    ;
}
static method main() → dynamic
  ;
