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

class A extends core::Object {
  synthetic constructor •() → void
    ;
  operator +(core::String s) → dynamic
    ;
  operator [](dynamic i) → dynamic
    ;
  operator []=(dynamic i, dynamic val) → dynamic
    ;
}
class B extends self::A {
  synthetic constructor •() → void
    ;
  operator +(core::String s) → dynamic
    ;
  operator [](dynamic i) → dynamic
    ;
  operator []=(dynamic i, dynamic val) → dynamic
    ;
}
class Autobianchi extends core::Object {
  synthetic constructor •() → void
    ;
  method g() → dynamic
    ;
}
