I think lisper is (rightly) criticizing the repetition of the same code being multiple places due to the includes (not the also irritating need to write the includes multiple places).  The problem does go from bad to worse in C and C++ when you work through what happens when static decelerations and method bodies make it into &quot;.h&quot; files.   A lot of rules are in place to have these multiple code units appear as a coherent single unit.