anchor.diff:    }
   }
   
  -class _DefaultExecutorAwareProjectCommand
  -    implements ExecutorAwareProjectCommand {
  -  final String name;
  -  final ExecutorAwareProjectFunction function;
  +class _DefaultExecutorAwareProjectCommand<T>
  +    implements ExecutorAwareProjectCommand<T> {
  +  final String name;
  +  final ExecutorAwareProjectFunction<T> function;
     // TODO: implement concurrencyMode
     @override
     CommandConcurrencyMode get concurrencyMode => null;
  
positive.code:   _DefaultExecutorAwareProjectCommand(this.name, this.function);
  
    @override
    Future process(CommandExecutor executor, {ProjectFilter filter}) async {
      _log.info('Executing command "$name"');
      final stopWatch = new Stopwatch();
      stopWatch.start();
  
negative.code: /// A command that operates on a [DependencyGraph]. Unlike the other commands,
  /// a ProjectDependencyGraphCommand is for tasks that require interacting with
  /// several projects at once
  ProjectDependencyGraphCommand /*<T>*/ dependencyGraphCommand /*<T>*/ (
          String name, ProjectDependencyGraphFunction /*<T>*/ function) =>
      new _DefaultProjectDependencyGraphCommand /*<T>*/ (name, function);
  
  ExecutorAwareProjectCommand /*<T>*/ executorAwareCommand /*<T>*/ (
          String name, ExecutorAwareProjectFunction /*<T>*/ function) =>
      new _DefaultExecutorAwareProjectCommand /*<T>*/ (name, function);
  
  /// Some function applied to a [Project]
  typedef Future<T> ProjectFunction<T>(Project project);
  