Thinking about this just now: should the dependency tracking thing be named *Module*DependencyRepository? There are other kinds of dependencies that we should track (eg tap -> tapped stream) and at the end of the day, everything is coupled (ie maybe having *different* classes for such a responsibility is not a good idea)

This is just food for thought, but...