anchor.diff:      constructor Create(Capacity: Integer = 4; Sync: Boolean = True;
         ReadWriteSync: Boolean = False); overload; virtual; abstract;
       constructor Create(Sync: Boolean;
  -      ReadWriteSync: Boolean = False); overload; virtual; abstract;
  +      ReadWriteSync: Boolean = False); overload; virtual;
  +    constructor Create(const AList: IList; Sync: Boolean = True;
  +      ReadWriteSync: Boolean = False); overload; virtual;
  +    constructor Create(const Container: Variant; Sync: Boolean = True;
  +      ReadWriteSync: Boolean = False); overload; virtual;
  +    constructor Create(const ConstArray: array of const; Sync: Boolean = True;
  +      ReadWriteSync: Boolean = False); overload; virtual;
  +    {$IFDEF BCB}
  +        constructor Create0; virtual; // for C++ Builder
  +        constructor Create1(Capacity: Integer); virtual; // for C++ Builder
  +        constructor Create2(Capacity: Integer; Sync: Boolean); virtual; // for C++ Builder
  +        constructor CreateS(Sync: Boolean); virtual; // for C++ Builder
  +        constructor CreateL1(const AList: IList); virtual; // for C++ Builder
  +        constructor CreateA1(const Container: Variant); virtual; // for C++ Builder
  +        constructor CreateCA1(const ConstArray: array of const); virtual; // for C++ Builder
  +        constructor CreateL2(const AList: IList; Sync: Boolean); virtual; // for C++ Builder
  +        constructor CreateA2(const Container: Variant; Sync: Boolean); virtual; // for C++ Builder
  +        constructor CreateCA2(const ConstArray: array of const; Sync: Boolean); virtual; // for C++ Builder
  +    {$ENDIF}
       destructor Destroy; override;
       function Add(const Value: Variant): Integer; virtual; abstract;
       procedure AddAll(const ArrayList: IList); overload; virtual; abstract;
  
positive.code:   FCount := 0;
    SetLength(FList, FCapacity);
  end;
  
  constructor TArrayList.Create(Sync, ReadWriteSync: Boolean);
  begin
    Create(4, Sync, ReadWriteSync);
  end;
  
  {$IFDEF BCB}
  constructor TArrayList.Create0;
  begin
    Create;
  end;
  constructor TArrayList.Create1(Capacity: Integer);
  begin
    Create(Capacity);
  end;
  constructor TArrayList.Create2(Capacity: Integer; Sync: Boolean);
  begin
    Create(Capacity, Sync);
  end;
  
  constructor TArrayList.CreateS(Sync: Boolean);
  begin
    Create(Sync);
  end;
  {$ENDIF}
  
  function TArrayList.Delete(Index: Integer): Variant;
  begin
  
negative.code:   public
      constructor Create(Capacity: Integer = 4; Sync: Boolean = True;
        ReadWriteSync: Boolean = False); overload; override;
      function Add(const Value: Variant): Integer; override;
      procedure AddAll(const AList: IList); overload; override;
      procedure AddAll(const Container: Variant); overload; override;
  