anchor.diff:    num usedRatio = 0;
     num usedSize = 0;
   
  -  PackageInfo();
  +  RuntimePackageInfo();
   
     void add(BasicInfo i, {bool used = true}) {
       totalSize += i.size;
  
positive.code:   }
  }
  
  Future<void> _reportWithPackages(
    String infoFile,
    String coverageFile,
  ) async {
    var info = await infoFromFile(infoFile);
    var coverageRaw = jsonDecode(File(coverageFile).readAsStringSync());
    // The value associated with each coverage item isn't used for now.
    var coverage = coverageRaw.keys.toSet();
  
    int totalProgramSize = info.program!.size;
    int totalLibSize = info.libraries.fold(0, (n, lib) => n + lib.size);
  
    int totalCode = 0;
    int usedCode = 0;
    final packageData = <String?, PackageInfo>{};
    final unused = PriorityQueue<Info>((a, b) => b.size.compareTo(a.size));
  
    void tallyCode(BasicInfo i) {
      totalCode += i.size;
  
negative.code:   print(' ${pad(msg1, 50, right: true)} $msg2');
  }
  
  class RuntimePackageInfo {
    final elements = PriorityQueue<BasicInfo>((a, b) => b.size.compareTo(a.size));
  
    num mainUnitSize = 0;
  