public override Value Evaluate(Interpreter i) { Value CastedA = new Value(A, i); if (CastedA.Type != ValueType.Boolean) CastedA.CastAsBoolean(); return new Value(!CastedA.Bool); }