anchor.diff:    return buckets;
   }
   
  -Future<ResultMessage> spawnWorker(name, environment, files) {
  +Future<ResultMessage> spawnWorker(name, pkgRoot, sdkRoot, files, verbose) {
     RawReceivePort port = new RawReceivePort();
     var completer = new Completer();
     port.handler = ((ResultMessage msg) {
       completer.complete(msg);
       port.close();
     });
  -  var msg = new WorkMessage(name, environment, files, port.sendPort);
  +  var msg = new WorkMessage(name, pkgRoot, sdkRoot, files, port.sendPort, verbose);
     Isolate.spawn(worker, msg);
     return completer.future;
   }
  
positive.code: worker(WorkMessage msg) {
    final start = new DateTime.now().millisecondsSinceEpoch;
  
    var env = msg.environment;
    List files = msg.files;
    var resolver =
        new Resolver(packageRoot: env["pkgRoot"], sdkRoot: env["sdkRoot"]);
    var workerHitmap = {};
    files.forEach((File fileEntry) {
      // Read file sync, as it only contains 1 object.
  
negative.code: 
  class WorkMessage {
    final String workerName;
    final String sdkRoot;
    final String pkgRoot;
    final List files;
    final SendPort replyPort;
    final bool verbose;
    WorkMessage(this.workerName, this.pkgRoot, this.sdkRoot, this.files, this.replyPort, this.verbose);
  }
  
  class ResultMessage {
  