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

static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
static field core::double* a_add = 1.0.{core::double::+}(2.0){(core::num*) →* core::double*};
static field core::double* a_subtract = 1.0.{core::double::-}(2.0){(core::num*) →* core::double*};
static field core::double* a_multiply = 1.0.{core::double::*}(2.0){(core::num*) →* core::double*};
static field core::double* a_divide = 1.0.{core::double::/}(2.0){(core::num*) →* core::double*};
static field core::int* a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num*) →* core::int*};
static field core::bool* a_greater = 1.0.{core::num::>}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_less = 1.0.{core::num::<}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num*) →* core::bool*};
static field core::double* a_modulo = 1.0.{core::double::%}(2.0){(core::num*) →* core::double*};
static method main() → dynamic {
  self::a_equal;
  self::a_notEqual;
  self::a_add;
  self::a_subtract;
  self::a_multiply;
  self::a_divide;
  self::a_floorDivide;
  self::a_greater;
  self::a_less;
  self::a_greaterEqual;
  self::a_lessEqual;
  self::a_modulo;
}
