anchor.diff:  String singularize(String s) {
     // Remove trailing character. Presumably an 's'.
     return s.substring(0, s.length-1);
  +}
  +
  +class PackageSdk {
  +  final List<DiffNode> classes = new List();
  +  DiffNode package;
   }
positive.code:   void reportEachMethodThing(String methodCategory, DiffNode d) {
      d.forEachAdded((k, v) {
        //print("New ${singularize(methodCategory)} '$k': ${pretty(v)}");
        io.writeln("New ${singularize(methodCategory)} [$k](#):\n");
        io.writeln("```dart");
        io.writeln(methodSignature(v as Map));
        io.writeln("```");
        io.writeln("");
      });
      
      d.forEachRemoved((k, v) {
        //print("New ${singularize(methodCategory)} '$k': ${pretty(v)}");
        if (k == '') { k = diff.metadata['name']; }
        io.writeln("Removed ${singularize(methodCategory)} [$k](#):\n");
        io.writeln("```dart");
        io.writeln(methodSignature(v as Map, includeComment: false));
        io.writeln("```");
        io.writeln("");
      });
            
      // iterate over the methods
  
negative.code:       reportPackage();
      } else {
        io.writeln(h2(diff.metadata['name']));
        reportClass();
      }
    }
  