anchor.diff:        addHunk(m2[i], 2);
       }
   
  -    hunks.sort();
  +    hunks.sort((a, b) {
  +      // a[0] file1 offset
  +      // a[1] side
  +      if (a[0] != b[0]) {
  +        return a[0].compareTo(b[0]);
  +      } else {
  +        return a[1].compareTo(b[1]);
  +      }
  +    });
   
       List result = [];
       int commonOffset = 0;
  
positive.code:         List<Map> c = diff_comm(item["conflict"]["a"], item["conflict"]["b"]);
          for (int j = 0; j < c.length; j++) {
            var inner = c[j];
            if (inner.containsKey(["common"])) {
              lines.addAll(item["common"]);
            } else {
              conflict = true;
              lines.addAll([ ["<<<<<<<<<"], inner["file1"],
                             ["========="], inner["file2"],
                             [">>>>>>>>>"]  ]);
            }
          }
        }
  
negative.code:       int side = x[0];
        if (side == -1) {
          if (excludeFalseConflicts && !isTrueConflict(x)) {
            pushOk(files[0].getRange(x[1], x[1] + x[2]).toList());
          } else {
            flushOk();
            // TODO(adam): class `Conflict`
            result.add({
              "conflict": {
                "a": a.getRange(x[1], x[1] + x[2]).toList(),
                "aIndex": x[1],
                "o": o.getRange(x[3], x[3] + x[4]).toList(),
                "oIndex": x[3],
                "b": b.getRange(x[5], x[5] + x[6]).toList(),
                "bIndex": x[5]
              }
            });
          }
        } else {
          pushOk(files[side].getRange(x[1], x[1] + x[2]).toList());
        }
      }
  
  