Thanks PascalDragon. I'm not sure to understand. In TList (belonging to RTL), items are pointers, whereas in TObjectList (in FCL) they are objects. Moreover in the TList I can't set not ownership of items, conversely in TObjectList I can. Now in FGL implementation of generics, both TFPGList and TFPGObjectList require that items are objects (i.e. descendants of TObject). As a conseguence, metatype T can't be specialized with a record. Differently, in rtl-generics implementation, specialization with a record type is supported. So, what is the impact of change you are talking about? Thanks again for kind support.