anchor.diff:      dependencies.forEach((p) => _rootNodeMap.remove(p));
     }
   
  -  Future depthFirst(process(Project project, Iterable<Project> dependencies)) {
  +  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 Future.forEach(_rootNodes, (n) => n.depthFirst(process, visited));
  +    return _rootNodes.expand((n) => n.getDepthFirst(visited));
     }
   
     _DependencyNode _getOrCreateNode(Project project) {
  
positive.code:       await process(project, dependencies);
      }
    }
  }
  
  class _ProjectDependencies {
  
negative.code: 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));
  