- left only "required" -- the only kind of dependency that is relevant
- drop the old two-stage scheme of incremental processing
- implement a heuristic to detect if an update has caused any change,
and only propagate the update further the inverse requirements graph
in case there were real changes
- drop cached memo
- various code simplifications and refactorings