Programs will however always have a parent pointer when they aren't
on the top level in a compilation unit.
Sorry, that could easily be misinterpreted. It should be: Programs
will always have a parent pointer when they aren't the top level in
compilation units.