anchor.diff:  
   procedure CheckDValueSetArrayLength(ADValue: PDRawValue; ALen: Integer);
   
  +
   procedure DValueSetAsString(ADValue:PDRawValue; pvString:String);
   function DValueGetAsString(ADValue:PDRawValue): string;
   
  
positive.code:   ClearDValue(@FRawValue);
  end;
  
  function TDValueItem.Equal(pvItem:TDValueItem): Boolean;
  begin
    Result := CompareDValue(@FRawValue, @pvItem.FRawValue) = 0;
  
negative.code: procedure DValueSetAsFloat(ADValue:PDRawValue; pvValue:Double);
  function DValueGetAsFloat(ADValue: PDRawValue): Double;
  
  procedure DValueSetAsBoolean(ADValue:PDRawValue; pvValue:Boolean);
  function DValueGetAsBoolean(ADValue: PDRawValue): Boolean;
  
  procedure RawValueCopyFrom(pvSource, pvDest: PDRawValue; pvIgnoreValueTypes:
      TDValueDataTypes = [vdtInterface, vdtObject, vdtPtr]);
  
  function BinToHex(p: Pointer; l: Integer; ALowerCase: Boolean): DStringW; overload;
  function BinToHex(const ABytes: TBytes; ALowerCase: Boolean): DStringW; overload;
  