program tgenfwd2; {$mode delphi} type TGen1 = class; TGen2 = class; TGen3 = class; TGen4 = class; TTest = class f1: TGen1; f2: TGen2; f3: TGen3<42>; f4: TGen4; { this will reuse the above specializations } f5: TGen1; f6: TGen2; f7: TGen3<42>; f8: TGen4; end; TGen1 = class end; TGen2 = class end; TGen3 = class end; TGen4 = class end; begin end.