anchor.diff:      constructor Create(ACapacity: Integer = 16; Factor: Single = 0.75;
         Sync: Boolean = True; ReadWriteSync: Boolean = False); overload; override;
       procedure Assign(const Source: IMap); override;
  -    function Get(const AKey: Variant; var AValue: Variant): Boolean; overload; override;
  +    function Get(const AKey: Variant; out AValue: Variant): Boolean; overload; override;
  +    procedure Put(const AList: IImmutableList); overload; override;
  +    procedure Put(const AMap: IMap); overload; override;
  +    procedure Put(const Container: Variant); overload; override;
  +    procedure Put(const ConstArray: array of const); overload; override;
       function Add(const AKey, AValue: Variant): Boolean; override;
       procedure Clear; override;
       function ContainsKey(const AKey: Variant): Boolean; override;
  
positive.code:     procedure PutAll(const AList: IImmutableList); overload; override;
      procedure PutAll(const AMap: IMap); overload; override;
      procedure PutAll(const Container: Variant); overload; override;
      function ToList(ListClass: TListClass; Sync: Boolean = True;
        ReadWriteSync: Boolean = False): IList; override;
      function ToArrayList(Sync: Boolean = True;
  
negative.code:   end;
  end;
  
  procedure THashMap.PutAll(const ConstArray: array of const);
  var
    I: Integer;
  begin
    for I := 0 to Length(ConstArray) - 1 do
        Put(I, VarRecToVar(ConstArray[I]));
  end;
  
  procedure THashMap.Put(const AKey, AValue: Variant);
  