A few different mechanisms here that will need some work to untangle:
- self-include in a preamble being an error even if the file is ifdef-guarded
- the is-include-guarded flag not being propagated from preamble to main ast
- preambles containing the first half on an include guard discard that info
For now just record current behavior.
Relevant to:
i think we want the same behaviour for