anchor.diff:          // Add the new dependencies to [_toProcess] so they don't get thrown
           // away when we return `false`.
           _toProcess.add(new Dependency(
  -            _intersectDeps([dependency.depender, fact.depender]),
  -            _intersectDeps([dependency.allowed, fact.allowed]),
  +            _intersectDeps(dependency.depender, fact.depender),
  +            _intersectDeps(dependency.allowed, fact.allowed),
               [dependency, fact]));
   
           var dependencyDifference = _depMinus(dependency, fact.depender);
  
positive.code:     }
    }
  
    void _removeDependency(Dependency dependency);
  
    void _removeIncompatibility(Incompatibility incompatibility);
  
    /// Enqueue [fact] to be procesed instead of the current fact.
    ///
  
negative.code:     var existing = _required[fact.name];
      if (existing == null) return true;
  
      var intersection = _intersectDeps(existing.dep, fact.dep);
      if (intersection == null) {
        throw "Incompatible constraints!";
      } else if (intersection == existing.dep) {
  