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

import "dart:core" as prefixedCore;
import "dart:core";

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  abstract operator *(self::A other) → self::A;
}
class B<X extends core::Object? = dynamic> extends core::Object implements self::A {
  synthetic constructor •() → self::B<self::B::X%>
    ;
  get foo() → core::bool
    ;
  operator *(self::A other) → self::A
    ;
}
class C extends self::B<core::int> {
  synthetic constructor •() → self::C
    ;
  set bar(core::int value) → void
    ;
  method baz() → void
    ;
}
extension type E0 on core::int {
}
extension type E1 on core::int {
}
extension type E2<T extends core::Object? = dynamic> on core::List<T%> {
}
extension type E3 on core::int {
}
extension type E4 on core::List<core::int> {
}
extension type E5 on core::List<dynamic> {
}
extension type E6 on core::List<core::int> {
}
extension type E on self::C {
}
static method main() → dynamic
  ;
