As Srki said, TList was designed to hold pointers, and there is no other information about the data it holds.

You should think of TList and TGList<_T> in the other direction: if you have TGList implement using array of _T, then you can simply say

Code:
type TList = TGList<Pointer>;
(if this is syntax which is supported in FPC)