anchor.diff:    end;
   end;
   
  -class operator BigInteger.Explicit(const Value: BigInteger): Cardinal;
  +class operator BigInteger.Explicit(const Value: BigInteger): Int32;
   begin
     if Value.FData = nil then
       Result := 0
     else
  -    Result := Value.FData[0] and High(Cardinal);
  -end;
  -
  -class operator BigInteger.Explicit(const Value: BigInteger): Integer;
  +  begin
  +    Result := Int32(Value.FData[0]);
  +    if Value.FSize < 0 then
  +      Result := -Result;
  +  end;
  +end;
  +
  +class operator BigInteger.Explicit(const Value: BigInteger): UInt32;
   begin
     if Value.FData = nil then
       Result := 0
     else
  -  begin
  -    Result := Value.FData[0] and High(Integer);
  -    if Value.FSize < 0 then
  -      Result := -Result;
  -  end;
  +    Result := Value.FData[0];
  +  if Value.FSize < 0 then
  +    Result := UInt32(-Int32(Result));
   end;
   
   class operator BigInteger.Explicit(const Value: BigInteger): Int64;
  
positive.code:     Result := UInt64(Self)
    else
      Error(ecConversion, 'UInt64');
  end;
  
  class operator BigInteger.Explicit(const Value: BigInteger): UInt64;
  begin
    if Value.FData = nil then
      Result := 0
    else
    begin
      TUInt64(Result).Lo := Value.FData[0];
      if (Value.FSize and SizeMask) > 1 then
        TUInt64(Result).Hi := Value.FData[1] and High(Cardinal)
      else
        TUInt64(Result).Hi := 0;
    end;
  end;
  
  class function BigInteger.InternalCompare(Left, Right: PLimb; LSize, RSize: Integer): Integer;
  
negative.code:   begin
      TUInt64(Result).Lo := Value.FData[0];
      if (Value.FSize and SizeMask) > 1 then
        TUInt64(Result).Hi := Value.FData[1]
      else
        TUInt64(Result).Hi := 0;
      if Value.FSize < 0 then
        Result := -Result;
    end;
  end;
  
  class operator BigInteger.Explicit(const Value: BigInteger): UInt64;
  begin
    if Value.FData = nil then
      Result := 0
    else
    begin
      TUInt64(Result).Lo := Value.FData[0];
      if (Value.FSize and SizeMask) > 1 then
        TUInt64(Result).Hi := Value.FData[1]
      else
        TUInt64(Result).Hi := 0;
    end;
    if Value.FSize < 0 then
      Result := UInt64(-Int64(Result));
  end;
  
  function BigInteger.AsCardinal: Cardinal;
  