anchor.diff:  
   main(List<String> args) async {
     final parser = new ArgParser();
  +  parser.addFlag("approved",
  +      abbr: 'A', negatable: false, help: "Show approved tests.");
     parser.addFlag("changed",
         abbr: 'c',
         negatable: false,
  
positive.code: 
  bool firstSection = true;
  
  bool search(String description, String searchFor, List<Event> events,
      ArgResults options) {
    bool judgement = false;
    bool beganSection = false;
    int count = options["count"] != null ? int.parse(options["count"]) : null;
    final configurations =
        events.map((event) => event.after.configuration).toSet();
    for (final event in events) {
      if (searchFor == "passing" &&
          (event.after.flaked || !event.after.matches)) {
        continue;
      }
      if (searchFor == "flaky" && !event.after.flaked) {
        continue;
      }
      if (searchFor == "failing" && (event.after.flaked || event.after.matches)) {
        continue;
      }
      if (options["unchanged"] && !event.unchanged) continue;
  
negative.code:   }
  
    final parameters = options.rest;
    if (parameters.length != 2 && parameters.length != 3) {
      print("error: Expected two or three parameters "
          "(results before, results after, and (optionally) approved results)");
      exitCode = 2;
      return;
    }
  