anchor.diff:      raise EArrayListError.CreateResFmt(@SListIndexError, [Index]);
     N := Length(ConstArray);
     Grow(N);
  -  Shift(Index, N);
  +  ShiftRight(Index, N);
     for I := 0 to N - 1 do FList[Index + I] := VarRecToVar(ConstArray[I]);
     Inc(FCount, N);
   end;
  
positive.code: begin
    if (Index >= 0) and (Index < FCount) then begin
      Result := FList[Index];
      UnShift(Index, 1);
    end;
  end;
  
  
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;
  
  