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

static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
static field core::double* a_add = 1.{core::num::+}(2.0){(core::num*) →* core::double*};
static field core::double* a_subtract = 1.{core::num::-}(2.0){(core::num*) →* core::double*};
static field core::double* a_multiply = 1.{core::num::*}(2.0){(core::num*) →* core::double*};
static field core::double* a_divide = 1.{core::num::/}(2.0){(core::num*) →* core::double*};
static field core::int* a_floorDivide = 1.{core::num::~/}(2.0){(core::num*) →* core::int*};
static field core::bool* a_greater = 1.{core::num::>}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_less = 1.{core::num::<}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_greaterEqual = 1.{core::num::>=}(2.0){(core::num*) →* core::bool*};
static field core::bool* a_lessEqual = 1.{core::num::<=}(2.0){(core::num*) →* core::bool*};
static field core::double* a_modulo = 1.{core::num::%}(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;
}
