Making external procedures harmless.
* We assume they do not to modify memory.
* We assume they return pointers only to memory locations disjoint from those
  statically or dynamically allocated in the program source.
Pulling back on disjoint pointers from external procedures.
* We should only be declaring pointer-type returns as external.
* Regular scalar ints, for instance, should be unaffected.
Using sets for procedure-level declarations.
* Avoids redundant declarations.
* Already done for top-level declarations.