anchor.diff:  // All rights reserved. Use of this source code is governed by a BSD-style
   // license that can be found in the LICENSE file.
   
  +import 'dart:async' show Future;
   import 'dart:io';
  -import 'dart:async' show Future;
   
  +import 'package:dartdoc/src/io_utils.dart';
  +import 'package:den_api/den_api.dart';
   import 'package:grinder/grinder.dart';
  +import 'package:librato/librato.dart';
   import 'package:path/path.dart' as path;
  -import 'package:dartdoc/src/io_utils.dart';
  -import 'package:librato/librato.dart';
  -import 'package:den_api/den_api.dart';
   
  -final Directory DOCS_DIR =
  +final Directory docsDir =
       new Directory(path.join('${Directory.systemTemp.path}', 'docs'));
   
  -main([List<String> args]) {
  -  grind(args);
  -}
  +main([List<String> args]) => grind(args);
   
   @Task('Start observatory for a test run')
  -observe(GrinderContext context) async {
  -  if (DOCS_DIR.existsSync()) DOCS_DIR.deleteSync(recursive: true);
  +observe() async {
  +  delete(docsDir);
     // TODO: Use `Dart.run` when https://github.com/google/grinder.dart/issues/214
     // is fixed.
     // TODO: uncomment all this when https://code.google.com/p/dart/issues/detail?id=23359
  
positive.code:   return stopwatch.elapsedMilliseconds;
  }
  
  Future _uploadStats(GrinderContext context, int sdkDocsGenTime) async {
    Map env = Platform.environment;
  
    if (env.containsKey('LIBRATO_USER') && env.containsKey('TRAVIS_COMMIT')) {
      Librato librato = new Librato.fromEnvVars();
      context.log('Uploading stats to ${librato.baseUrl}');
      LibratoStat sdkDocsGenTimeStat =
          new LibratoStat('sdk-docs-gen-time', sdkDocsGenTime);
      await librato.postStats([sdkDocsGenTimeStat]);
  
negative.code: 
    print('Copy and paste this into your console:\n');
    print('open http://localhost:7334');
    print('dart --pause-isolates-on-exit --enable-vm-service=7334 '
        '--profile bin/dartdoc.dart --output ${docsDir.path}');
  }
  
  @Task('publish to pub.dartlang')
  @Depends(bumpVersionBuild)
  publish() async {
    Dart.run('pub', arguments: ['publish']);
  }
  
  @Task('Bump pubspec version and version number in lib/dartdoc.dart')
  bumpVersionBuild() async {
    Pubspec pubspec = (await Pubspec.load())
      ..bump(ReleaseType.build)
      ..save();
  
    var libCode = new File('lib/dartdoc.dart');
    if (!libCode.existsSync()) {
      fail('Cannot find lib/dartdoc.dart');
    }
    String libCodeContents = libCode.readAsStringSync();
    libCodeContents = libCodeContents.replaceFirst(
  