Die Routine bringt aber nix, wenn sie generisch ist, kannste sie nicht unter das if/else schreiben und für jegliche TList<T> nutzen, weil du immernoch nen T angeben musst. Die fehlende Kontravarianz ist hier das Problem.
Sonst hättse ja gleich das hier schreiben können, nech?
Delphi-Quellcode:
if (...) then
varListRed.TrimExcess
else
varListBlue.TrimExcess;