anchor.diff:  
       if Comparison = 0 then
       begin
  -      Result := Zero;
  +      Result.FSize := 0;
  +      Result.FData := nil;
         Exit;
       end;
   
  
positive.code:   // Special handling for 0.
    if Left.FData = nil then
    begin
      ShallowCopy(Right, Result);
      Exit;
    end
    else if Right.FData = nil then
    begin
      ShallowCopy(Left, Result);
      Exit;
    end;
  
  
negative.code: end;
  
  class function BigInteger.Compare(const Left, Right: BigInteger): Integer;
  var
    LSize, RSize: Integer;
  begin
    LSize := Left.FSize and SizeMask;
    RSize := Right.FSize and SizeMask;
    // Avoid comparing -0 and +0, so make all zeroes simply 0.
    Result := InternalCompare(PLimb(Left.FData), PLimb(Right.FData), LSize, RSize);
    if Left.FSize < 0 then
      if Right.FSize < 0 then
        Result := -Result
  