~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note [choosing external names]
+See also the section "Interface stability" in the
+RecompilationAvoidance commentary:
+ http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
+
First we figure out which Ids are "external" Ids. An
"external" Id is one that is visible from outside the compilation
unit. These are