anchor.diff:  begin
     FKeys := AKeys;
     FValues := AValues;
  +end;
  +
  +procedure THashMap.PutAll(const AList: IImmutableList);
  +var
  +  I: Integer;
  +begin
  +  for I := 0 to AList.Count - 1 do
  +    Put(I, AList[I]);
   end;
   
   procedure THashMap.PutAll(const AMap: IMap);
  
positive.code:     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 Add(const AKey, AValue: Variant): Boolean; override;
      procedure Clear; override;
      function ContainsKey(const AKey: Variant): Boolean; override;
  
negative.code:     procedure PutAll(const AList: IImmutableList); overload; virtual; abstract;
      procedure PutAll(const AMap: IMap); overload; virtual; abstract;
      procedure PutAll(const Container: Variant); overload; virtual; abstract;
      procedure PutAll(const ConstArray: array of const); overload; virtual; abstract;
      function ToList(ListClass: TListClass; Sync: Boolean = True;
        ReadWriteSync: Boolean = False): IList; virtual; abstract;
      property Count: Integer read GetCount;
  