Dependencies and invalidation vs re-use
A header file provides (exports) various
, including macros, types, external declarations, and inline functions.
Goal: When including a file that has been processed before, just
declaration nodes from last time.
Then we can just skip the header.
Complication: A definition may depend on other definitions.
Must check that these have not changed.