anchor.diff:  procedure TJSONObjectHelper.WriteArrayValue(const AName: string;
     const AArray: TJSONArray);
   begin
  +  DeletePair(AName);
     AddPair(AName, AArray);
   end;
   
  
positive.code:     function ReadArrayValue(const AName: string): TJSONArray; overload; inline;
      function ReadArrayValue<T: record>(const AName: string): TArray<T>; overload; inline;
  
      procedure WriteStringValue(const AName: string; const AValue: string);
      procedure WriteIntegerValue(const AName: string; const AValue: Integer);
      procedure WriteInt64Value(const AName: string; const AValue: Int64);
  
negative.code: 
  procedure TJSONObjectHelper.WriteDoubleValue(const AName: string;
    const AValue: Double);
  begin
    DeletePair(AName);
    AddPair(AName, TJSONNumber.Create(AValue));
  end;
  
  procedure TJSONObjectHelper.WriteInt64Value(const AName: string;
    const AValue: Int64);
  begin
    DeletePair(AName);
    AddPair(AName, TJSONNumber.Create(AValue));
  end;
  
  procedure TJSONObjectHelper.WriteIntegerValue(const AName: string;
    const AValue: Integer);
  begin
    DeletePair(AName);
    AddPair(AName, TJSONNumber.Create(AValue));
  end;
  
  procedure TJSONObjectHelper.WriteStringValue(const AName, AValue: string);
  begin
    DeletePair(AName);
    if AValue <> '' then
      AddPair(AName, TJSONString.Create(AValue));
  end;
  