anchor.diff:    Fact _requiredAndAllowed(Required required, Dependency dependency) {
       assert(required.dep.name == dependency.allowed.name);
   
  -    var intersection = _intersectDeps([required.dep, dependency.allowed]);
  +    var intersection = _intersectDeps(required.dep, dependency.allowed);
       if (intersection == null) {
         // If there are no versions covered by both [dependency.allowed] and
         // [required], then this dependency can never be satisfied and the
  
positive.code:   // source, diff desc, or non-overlapping).
    //
    // Doesn't need to reduce gaps if everything's already maximized.
    PackageDep _intersectDeps(Iterable<PackageDep> deps);
  
    // Returns packages allowed by [minuend] but not also [subtrahend]. `null` if
    // the resulting constraint is empty.
    PackageDep _depMinus(PackageDep minuend, PackageDep subtrahend);
  }
  
negative.code:     }
    }
  
    void _removeDependency(Dependency dependency) {
      assert(_dependenciesByDepender[dependency.depender.toRef()]
          .remove(dependency));
      assert(_dependenciesByAllowed[dependency.allowed.toRef()]
          .remove(dependency));
    }
  
    void _removeIncompatibility(Incompatibility incompatibility) {
      assert(_incompatibilities[incompatibility.dep1.toRef()]
          .remove(incompatibility));
      assert(_incompatibilities[incompatibility.dep2.toRef()]
          .remove(incompatibility));
    }
  
    /// Enqueue [fact] to be procesed instead of the current fact.
    ///
  