anchor.diff:  
       /// <summary>Explicitly (i.e. with a cast) converts the specified BigInteger to an Integer. If necessary, the
       ///   value of the BigInteger is truncated or sign-extended to fit in the result.</summary>
  -    class operator Explicit(const Value: BigInteger): Integer;
  +    class operator Explicit(const Value: BigInteger): Int32;
   
       /// <summary>Explicitly (i.e. with a cast) converts the specified BigInteger to a Cardinal. If necessary, the
       ///   value of the BigInteger is truncated to fit in the result.</summary>
  -    class operator Explicit(const Value: BigInteger): Cardinal;
  +    class operator Explicit(const Value: BigInteger): UInt32;
   
       /// <summary>Explicitly (i.e. with a cast) converts the specified BigInteger to an Int64. If necessary, the
       ///   value of the BigInteger is truncated or sign-extended to fit in the result.</summary>
  
positive.code:   end;
  end;
  
  class operator BigInteger.Explicit(const Value: BigInteger): Cardinal;
  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
    if Value.FData = nil then
      Result := 0
    else
    begin
      Result := Value.FData[0] and High(Integer);
      if Value.FSize < 0 then
        Result := -Result;
    end;
  end;
  
  class operator BigInteger.Explicit(const Value: BigInteger): Int64;
  
negative.code:     Result := UInt64(Self)
    else
      Error(ecConversion, 'UInt64');
  end;
  
  class function BigInteger.InternalCompare(Left, Right: PLimb; LSize, RSize: Integer): Integer;
  