 <p>The code bloat they are talking about in the article (as it is about the out of memory issue in the IDE) is related to the generated DCUs and all the meta information that is held in the IDE. Every DCU contains all the used generics. Only when compiling your binary the linker will remove duplicates.</p> <p>That means if you have <code>Unit1.pas</code> and <code>Unit2.pas</code> and both are using <code>TList&lt;Integer&gt;</code> both <code>Unit1.dcu</code> and <code>Unit2.dcu</code> have the binary code for <code>TList&lt;Integer&gt;</code> compiled in.</p> <p>If you declare <code>TIntegerList = TList&lt;Integer&gt;</code> in <code>Unit3</code> and use that in <code>Unit1</code> and <code>Unit2</code> you might think this would only include the compiled <code>TList&lt;Integer&gt;</code> in <code>Unit3.dcu</code> but not in the other two. But unfortunately that is not the case.</p>