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;
}
