anchor.diff:  begin
     if (Index >= 0) and (Index < FCount) then begin
       Result := FList[Index];
  -    UnShift(Index, 1);
  +    ShiftLeft(Index, 1);
     end;
   end;
   
  
positive.code:   SetLength(FList, FCapacity);
  end;
  
  procedure TArrayList.UnShift(Index, N: Integer);
  var
    I: Integer;
  begin
  
negative.code:   if (Index >= 0) and (Index < FCount) then begin
      if ACount > FCount - Index then ACount := FCount - Index;
      DeleteHash(Index, ACount);
      ShiftLeft(Index, ACount);
    end;
  end;
  
  