anchor.diff:    SetLength(FList, FCapacity);
   end;
   
  -procedure TArrayList.UnShift(Index, N: Integer);
  +procedure TArrayList.ShiftLeft(Index, N: Integer);
   var
     I: Integer;
   begin
  
positive.code: begin
    if (Index >= 0) and (Index < FCount) then begin
      Result := FList[Index];
      UnShift(Index, 1);
    end;
  end;
  
  
negative.code:     function Get(Index: Integer): Variant; override;
      procedure Grow; overload; virtual;
      procedure Grow(N: Integer); overload; virtual;
      procedure ShiftRight(Index, N: Integer);
      procedure ShiftLeft(Index, N: Integer);
      procedure Put(Index: Integer; const Value: Variant); override;
      function GetCapacity: Integer; override;
      function GetCount: Integer; override;
  