Delphi mode allows generic type overloads. This means that it is possible to declare the same
generic class with different template type lists. The following declarations are therefore
possible:
                                                                            
                                                                            
Type
 
  TTest<T> = Class(TObject)
 
  Private
 
    FObj : T;
 
  Public
 
    Property Obj : T Read FObj Write FObj;
 
  end;
 
 
  TTest<T,S> = Class(TObject)
 
  Private
 
    FObj1 : T;
 
    FObj2 : S;
 
  Public
 
    Property Obj1 : T Read FObj1 Write FObj1;
 
    Property Obj2 : S Read FObj2 Write FObj2;
 
  end;