anchor.diff:      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;
  
positive.code:   begin
      TUInt64(Result).Lo := Value.FData[0];
      if (Value.FSize and SizeMask) > 1 then
        TUInt64(Result).Hi := Value.FData[1] and High(Integer)
      else
        TUInt64(Result).Hi := 0;
      if Value.FSize < 0 then
        Result := -Result;
    end;
  end;
  
  function BigInteger.AsCardinal: Cardinal;
  
negative.code: 
      /// <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): 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): 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>
  