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

extension Ops on core::Object {
  operator + = self::Ops|+;
  operator - = self::Ops|-;
  get field = self::Ops|get#field;
  set field = self::Ops|set#field;
}
static field core::String setValue;
static method main() → void
  ;
static method expect(core::String expect, core::Object value, core::String expectSet) → void
  ;
static method Ops|+(lowered final core::Object #this, core::Object other) → core::Object
  ;
static method Ops|-(lowered final core::Object #this, core::Object other) → core::Object
  ;
static method Ops|get#field(lowered final core::Object #this) → core::Object
  ;
static method Ops|set#field(lowered final core::Object #this, core::Object other) → void
  ;
