docs: public static long addWithOverflow(Slice left, Slice right, Slice result)
      {
          boolean leftNegative = isNegative(left);
          boolean rightNegative = isNegative(right);
          long overflow = 0;
          if (leftNegative == rightNegative) {
              // either both negative or both positive
              overflow = addUnsignedReturnOverflow(left, right, result, leftNegative);
              if (leftNegative) {
                  overflow = -overflow;
              }
          }
          else {
              int compare = compareAbsolute(left, right);
              if (compare > 0) {
                  subtractUnsigned(left, right, result, leftNegative);
              }
              else if (compare < 0) {
                  subtractUnsigned(right, left, result, !leftNegative);
              }
              else {
                  setToZero(result);
              }
          }
          return overflow;
      }