anchor.diff:    }
   }
   
  -class _DefaultCommand implements ProjectCommand {
  +class _DefaultCommand<T> implements ProjectCommand<T> {
     final String name;
     final Function function;
     final CommandConcurrencyMode concurrencyMode;
  
positive.code:       this.name, this.function, this.concurrencyMode, this.condition);
  
    @override
    Future process(Project project,
        {Iterable<Project> dependencies: const []}) async {
      final taskDescription = '$name for project ${project.name}';
      if (!condition()) {
  
negative.code:       throw new ArgumentError('Invalid function passed into process');
      }
  
      final Callable<T> callable = () => (function is ProjectWithDependenciesFunction
          ? function(project, dependencies)
          : function(project));
  
  