Do not connect:
- when elm-stuff/ is valid
- exploring constraints
Optional connect:
- when elm-stuff/ is invalid
- install
Mandatory connect:
- diff
- bump
- publish
Start figuring out how to localize types again. This version is opaque,
allowing me to find all the current uses, and it can be constructed
from a list of source inputs. This should be good for `make` and `repl`
This change also moves towards getting --debug working again. In
particular, if you are in debug mode, you must have the full transitive
set of module interfaces. By putting that information in the Mode, it
means it only needs to be loaded in that case. In dev and prod mode, no
extra work is needed.
This is neat because you get one error message telling you all the
modules that have Debug remnants.
It is also neat because the Generate.Nitpick module seems like the
perfect place for things like “efficiently detect globally unused
definitions” and “detect packages that are no longer used”