anchor.diff:  import 'package:devops/src/project.dart';
   import 'dart:async';
   import 'package:devops/src/pubspec/pubspec.dart';
  +import 'package:quiver/iterables.dart';
   
   Future<DependencyGraph> getDependencyGraph(Set<Project> projects) async =>
       new DependencyGraph(await _determineDependencies(projects));
  
positive.code:       await process(project, dependencies);
      }
    }
  }
  
  class _ProjectDependencies {
  
negative.code:     dependencies.forEach((p) => _rootNodeMap.remove(p));
    }
  
    Future depthFirst(
        process(Project project, Iterable<Project> dependencies)) async {
      await Future.forEach(getDepthFirst,
          (_ProjectDependencies pd) => process(pd.project, pd.dependencies));
    }
  
    Iterable<_ProjectDependencies> get getDepthFirst {
      Set<Project> visited = new Set();
      return _rootNodes.expand((n) => n.getDepthFirst(visited));
    }
  
    _DependencyNode _getOrCreateNode(Project project) {
  