program tgeneric18; {$mode objfpc}{$H+} type { TFirstGeneric } generic TFirstGeneric<T> = class(TObject) end; { TSecondGeneric } generic TSecondGeneric<T> = class(TObject) public type TFirstGenericType = specialize TFirstGeneric<T>; end; var Second: specialize TSecondGeneric<string>; begin end.