title: Delphi interface generic function returning TobjectList<T>
body: <p>Why does this not work? I get a E2511 Type parameter 'T' must be a class type?</p>
  
  <pre><code>type
    IBaseProvider&lt;T&gt; = Interface
      function GetAll: TObjectList&lt;T&gt;;
    end;
  
  type
    TCar = class(TInterfacedPersistent, IBaseProvider&lt;TVehicle&gt;)
      function GetAll: TObjectList&lt;TVehicle&gt;;
    end;
  
  implementation
  
  function TCar.GetAll: TObjectList&lt;TVehicle&gt;;
  begin
    // do something with Objectlist
    Result := ObjectList
  end;
  </code></pre>