anchor.diff:  
       if (_isNumber(secondOp, 0)) {
         return firstOp;
  +    }
  +    
  +    if (secondOp is UnaryMinus) {
  +      return firstOp + secondOp.exp; // a - -(b) = a + b
       }
   
       return new Minus(firstOp, secondOp);
  
positive.code: 
      if (_isNumber(firstOp, 0)) {
        return firstOp; // = 0
      }
  
      if (_isNumber(secondOp, 0)) {
        throw new IntegerDivisionByZeroException();
      }
  
      if (_isNumber(secondOp, 1)) {
  
negative.code:     if (_isNumber(secondOp, 0)) {
        return firstOp;
      }
      
      if (secondOp is UnaryMinus) {
        return firstOp - secondOp.exp; // a + -(b) = a - b
      }
  
      return new Plus(firstOp, secondOp);
      //TODO -a + b = b - a
  