anchor.diff:      function Delete(Index: Integer): Variant; override;
       procedure DeleteRange(Index, ACount: Integer); override;
       procedure Exchange(Index1, Index2: Integer); override;
  +    procedure Put(Index: Integer; const Value: Variant); override;
       function IndexOf(const Value: Variant): Integer; override;
       function LastIndexOf(const Value: Variant): Integer; override;
       procedure Insert(Index: Integer; const Value: Variant); override;
  
positive.code:   Move(PChar(AString)^, FData[FPosition], Count * SizeOf(Char));
    Inc(FPosition, Count);
    if FPosition > FLength then FLength := FPosition;
  end;
  
  { TVarObjectType }
  
negative.code:     procedure DeleteHash(Index, N: Integer);
      procedure InsertHash(Index, N: Integer);
      function HashOf(const Value: Variant): Integer; virtual;
    public
      constructor Create(ACapacity: Integer = 4; Sync: Boolean = True;
        ReadWriteSync: Boolean = False); overload; override;
  