anchor.diff:      procedure PutAll(const AList: IImmutableList); overload; override;
       procedure PutAll(const AMap: IMap); overload; override;
       procedure PutAll(const Container: Variant); overload; override;
  +    procedure PutAll(const ConstArray: array of const); overload; override;
       function ToList(ListClass: TListClass; Sync: Boolean = True;
         ReadWriteSync: Boolean = False): IList; override;
       function ToArrayList(Sync: Boolean = True;
  
positive.code: begin
    FKeys := AKeys;
    FValues := AValues;
  end;
  
  procedure THashMap.PutAll(const AMap: IMap);
  
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;
  