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

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
  external get i1() → core::int;
  external set i1(synthesized core::int #externalFieldValue) → void;
  external get cx() → dynamic;
  external set cx(covariant-by-declaration synthesized dynamic #externalFieldValue) → void;
  external static get s1() → core::int;
  external static set s1(synthesized core::int #externalFieldValue) → void;
  external static get fx() → dynamic;
}
external static get s1() → core::int;
external static set s1(synthesized core::int #externalFieldValue) → void;
external static get fx() → dynamic;
static method main() → dynamic
  ;
