This is just my guess.
The new module works similarly to a precompiled header with automatic linking of the static library. The great benefit comes from the fact that there is no need to parse the same set of headers in different compilation units. The compiler precompiles the structure headers and makes them reusable.
The main problem is that one project cannot have two precompiled headers. If the header is precompiled, the content should be the same in each compilation unit (.m file).
Suppose you can create a custom module:
mymodule.h
#ifndef MyCountType # define MyCountType int #endif static MyCountType counter_per_file;
somefile.m
#define MyCountType double #import "mymodule.h"
someotherfilie.m
#define MyCountType unsigned int #import "mymodule.h"
So what should be the type of counter_per_file ? When precompiling mymodule.h compiler has no way to find out the type of MyCountType , it could be int or something else.
source share