anchor.diff:          table.add([location, product, count, mrr, mrr_5]);
         }
         printTable(table);
  +    }
  +    //
  +    // Print information that would normally appear in the comprison when there
  +    // is no comparison section.
  +    //
  +    if (targetMetrics.length == 1) {
  +      printOtherMetrics(metrics);
  +      printCompletionCounts(metrics);
       }
     }
   
  
positive.code:     printTable(table);
    }
  
    void printOtherMetrics() {
      List<String> toRow(Iterable<ArithmeticMeanComputer> sources) {
        var computers = sources.toList();
        var row = [computers.first.name];
        for (var computer in computers) {
          var min = computer.min;
          var mean = computer.mean.toStringAsFixed(6);
          var max = computer.max;
          row.add('$min, $mean, $max');
        }
        return row;
      }
  
      var table = [
        ['', for (var metrics in targetMetrics) metrics.name],
        toRow(targetMetrics.map((metrics) => metrics.meanCompletionMS)),
        toRow(targetMetrics.map((metrics) => metrics.charsBeforeTop)),
        toRow(targetMetrics.map((metrics) => metrics.charsBeforeTopFive)),
        toRow(targetMetrics.map((metrics) => metrics.insertionLengthTheoretical)),
      ];
      rightJustifyColumns(table, range(1, table[0].length));
  
      printHeading(2, 'Comparison of other metrics');
      printTable(table);
  
      for (var metrics in targetMetrics) {
        var distribution = metrics.distributionCompletionMS.displayString();
        print('${metrics.name}: $distribution');
      }
    }
  
    void printResults() {
      if (targetMetrics.length > 1) {
        print('');
        printComparisons();
      }
      var needsBlankLine = false;
  
negative.code:       printCounter(metrics.completionKindCounter);
        printCounter(metrics.completionElementKindCounter);
      }
  
      List<String> toRow(MeanReciprocalRankComputer computer) {
        return [
  