anchor.diff:      // iterate over the methods
       d.forEach((method, attributes) {
         // for a method, iterate over its attributes
  -      reportEachMethodAttribute(methodCategory, method, attributes);
  -    });
  -  }
  -  
  -  void reportEachMethodAttribute(String methodCategory, String method, DiffNode attributes) {
  +      reportEachMethodAttribute(category, method, attributes);
  +    });
  +  }
  +  
  +  void reportEachMethodAttribute(String category, String method, DiffNode attributes) {
       attributes.forEach((attributeName, attribute) {
         attribute.forEachAdded((k, v) {
           //print("The '$method' in '$methodCategory' has a new $name: '$k': ${pretty(v)}");
  -        String category = singularize(methodCategory);
           io.writeln("The [$method](#) ${category} has a new ${singularize(attributeName)}: `${parameterSignature(v as Map)}`");
           io.writeln("\n---\n");
         });
         if (erase) { attribute.added.clear(); }
         
         attribute.node.forEach((attributeAttributeName, attributeAttribute) {
  -        reportEachMethodAttributeAttribute(methodCategory, method, attributeName, attributeAttributeName, attributeAttribute);
  +        reportEachMethodAttributeAttribute(category, method, attributeName, attributeAttributeName, attributeAttribute);
         });
       });
   
       attributes.forEachChanged((String key, List oldNew) {
  -      io.writeln("The [$method](#) ${singularize(methodCategory)}'s `${key}` changed:\n");
  +      io.writeln("The [$method](#) $category's `${key}` changed:\n");
         if (key == "comment") {
           io..writeln("Was:\n")
               ..writeBlockquote((oldNew as List<String>)[0])
  
positive.code:     }
  
      // iterate over the method categories
      diff.forEachOf("methods", (k,v) {
        reportEachMethodThing(k, v);
      });
      diff.forEachOf("inheritedMethods", (k,v) {
        reportEachMethodThing(k, v, parenthetical: "inherited");
      });
      
      DiffNode variables = diff["variables"];
      if (variables != null) {
        if (variables.hasAdded) {
          io.writeln("New variables:\n");
          io.writeCodeblockHr(variables.added.values.map(variableSignature).join("\n"));
        }
        if (erase) { variables.added.clear(); }
  
        if (variables.hasRemoved) {
          io.writeln("Removed variables:\n");
          io.writeCodeblockHr(variables.removed.values.map(variableSignature).join("\n"));
        }
        if (erase) { variables.removed.clear(); }
  
        if (variables.hasChanged) {
          variables.forEachChanged((k,v) {
            print("CHANGED: $k, $v");
          });
        }
  
        variables.forEach((key, variable) {
          if (variable.hasChanged) {
            variable.forEachChanged((attribute, value) {
              io.writeln("The [$key](#) variable's `$attribute` changed:\n");
              io.writeln("Was: `${value[0]}`\n");
              io.writeln("Now: `${value[1]}`\n");
              io.writeln("---\n");
            });
          }
          if (erase) { variable.changed.clear(); }
          
          if (variable.node.isNotEmpty) {
            variable.node.forEach((s, dn) {
              print("BAD WRITING?");
              io.writeBad("TODO: The [$key](#) variable's `$s` has changed:\n", dn.toString(pretty: false));
            });
          }
          if (erase) { variable.node.clear(); }
        });
      }
    }
    
    void reportList(String key, DiffNode d) {
      d[key].forEachAdded((String idx, String el) {
        io.writeln("New $key at index $idx: ${el}");
  
negative.code:   }
  
    void calculateAllDiffs() {
      List<FileSystemEntity> rightRawLs = new Directory(rightPath).listSync(recursive: true);
      List<String> rightLs = rightRawLs
          .where((FileSystemEntity f) => f is File)
          .map((File f) => f.path)
          .toList();
  
      int i = 0;
      rightLs.forEach((String file) {
        i += 1;
        if (i < 100) {
          file = file.replaceFirst(rightPath, "");
          print("$i: diffing $file");
          calculateDiff(file);
        }
  