anchor.diff:    // source, diff desc, or non-overlapping).
     //
     // Doesn't need to reduce gaps if everything's already maximized.
  -  PackageDep _intersectDeps(Iterable<PackageDep> deps);
  +  PackageDep _intersectDeps(PackageDep dep1, PackageDep dep2) {
  +    if (dep1.toRef() != dep2.toRef()) return null;
  +    var intersection = dep1.constraint.intersect(dep2.constraint);
  +    return intersection.isEmpty ? null : dep1.withConstraint(intersection);
  +  }
   
     // Returns packages allowed by [minuend] but not also [subtrahend]. `null` if
     // the resulting constraint is empty.
  -  PackageDep _depMinus(PackageDep minuend, PackageDep subtrahend);
  +  PackageDep _depMinus(PackageDep minuend, PackageDep subtrahend) {
  +    if (minuend.toRef() != subtrahend.toRef()) return minuend;
  +    var difference = minuend.constraint.difference(subtrahend.constraint);
  +    return difference.isEmpty ? null : minuend.withConstraint(difference);
  +  }
   }
  
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) {
  