anchor.diff:  
     // Merge [deps], [_allIds]-aware to reduce gaps. `null` if the deps are
     // incompatible source/desc. Algorithm TBD.
  +  //
  +  // TODO: [_transitiveIncompatible] needs this to return `null` for empty list.
     PackageDep _mergeDeps(Iterable<PackageDep> deps);
   
     // Intersect [deps], return `null` if they aren't compatible (diff name, diff
  
positive.code:         if (result != null) _replaceCurrent(result);
          return false;
        }
      }
    }
  
  
negative.code:         if (!_incompatibilityIntoIncompatibilities(fact)) continue;
          if (!_incompatibilityIntoDisallowed(fact)) continue;
          if (!_incompatibilityIntoRequired(fact)) continue;
          if (!_incompatibilityIntoDependencies(fact)) continue;
  
          _incompatibilities
              .putIfAbsent(fact.dep1.toRef(), () => new Set())
  