anchor.diff:  
     Map<Project, _DependencyNode> _nodeMap = {};
   
  -  DependencyGraph._(Set<_DependencyNode> dependencySet) {
  +  DependencyGraph._(Set<_ProjectDependencies> dependencySet) {
       dependencySet.forEach((ds) => _add(ds.project, ds.directDependencies));
     }
   
  
positive.code:       _dependencies.map((n) => n.toJefeProject()), project);
  }
  
  Future<Set<_DependencyNode>> _determineDependencies(
          Set<Project> projects) async =>
      (await Future.wait(projects.map((p) => _resolveDependencies(
              p, new Map.fromIterable(projects, key: (p) => p.name)))))
          .toSet();
  
  Future<_DependencyNode> _resolveDependencies(
      Project project, Map<String, Project> projects) async {
    final PubSpec pubspec = project.pubspec;
  
  
negative.code:     return node;
    }
  }
  class _ProjectDependencies {
    final Project project;
    final Set<Project> directDependencies;
  
    _ProjectDependencies(this.project, this.directDependencies);
  }
  
  class _DependencyNode implements _ProjectDependencies {
    final Project project;
    final Set<_DependencyNode> _dependencies;
    Iterable<Project> get directDependencies =>
  