Group completed interfaces together, not on each module

Type inference may need to look at transitive dependencies, so it is
easiest to keep all the completed interfaces in one place.