anchor.diff:    assert(edges != null, '`edges` cannot be null');
   
     final distances = HashMap<T, List<T>>(equals: equals, hashCode: hashCode);
  -  distances[start] = [];
  +  distances[start] = List(0);
   
     equals ??= _defaultEquals;
     if (equals(start, target)) {
  
positive.code: 
    while (toVisit.isNotEmpty) {
      final current = toVisit.removeFirst();
      final distanceToCurrent = distances[current];
  
      if (bestOption != null && distanceToCurrent.length >= bestOption.length) {
        // Skip any existing `toVisit` items that have no chance of being
        // better than bestOption (if it exists)
        continue;
  
negative.code:       final existingPath = distances[edge];
  
        if (existingPath == null ||
            existingPath.length > (currentPathLength + 1)) {
          final newOption = List<T>(currentPathLength + 1)
            ..setAll(0, currentPath)
            ..[currentPathLength] = edge;
  
          if (equals(edge, target)) {
            assert(bestOption == null || bestOption.length > newOption.length);
  