for (ISeq s=newDeps.seq(); s!=null; s=s.next()) {
Symbol sym=(Symbol)s.first();
if (oldDeps.contains(sym)) continue;
IPersistentSet bs=(IPersistentSet) backDeps.valAt(sym);
if (bs==null) bs=PersistentHashSet.EMPTY;
backDeps=backDeps.assoc(sym, bs.cons(key));
}
// remove old back dependencies
for (ISeq s=oldDeps.seq(); s!=null; s=s.next()) {
Symbol sym=(Symbol)s.first();