anchor.diff:          if (fact == null) continue;
   
           fact = _dependencyIntoDisallowed(fact);
  +        if (fact == null) continue;
  +
  +        fact = _dependencyIntoIncompatibilities(fact);
           if (fact == null) continue;
   
           _dependenciesByDepender
  
positive.code:       assert(dependency.depender.toRef() == depender.toRef());
        return dependency.depender;
      }));
      if (!mergedDepender.constraint.allowsAll(depender.constraint)) return null;
  
      // If the dependencies cover all of [depender], try to union the allowed
      // versions to get the narrowest possible constraint that covers all
  
negative.code:           // * a [3, 4) depends on b [1, 3)
            _removeDependency(dependency);
  
            var intersection = _intersectDeps([dependency.depender, fact.depender]);
            _fromCurrent.add(new Dependency(
                intersection,
                _intersectDeps([dependency.allowed, fact.allowed]),
                [dependency, fact]));
  
            var dependencyDifference = _depMinus(dependency, intersection);
  