anchor.diff:    Result := TListEnumerator.Create(Self);
   end;
   
  -function TAbstractList.Join(const Glue, LeftPad, RightPad: string): string;
  +function TAbstractList.Join(const Glue: string; const LeftPad: string;
  +  const RightPad: string): string;
   var
     Buffer: TStringBuffer;
     E: IListEnumerator;
  
positive.code:     function ToArray(VarType: TVarType): Variant; overload; virtual; abstract;
      function First: Variant;
      function Last: Variant;
      property Item[Index: Integer]: Variant read Get write Put; default;
      property Capacity: Integer read GetCapacity write SetCapacity;
      property Count: Integer read GetCount write SetCount;
  
negative.code: function TAbstractList.Last: Variant;
  begin
    Result := Get(Count - 1);
  end;
  
  procedure TAbstractList.Pack;
  var
    I: Integer;
  begin
    for I := Count - 1 downto 0 do if VarIsClear(Get(I)) then Delete(I);
  end;
  
  { TArrayList }
  