anchor.diff:  }
   
   trieLeaves(node) sync* {
  -  if (node.map.isEmpty) {
  +  if (node.members.isNotEmpty) {
       yield node;
  -  } else {
  -    for (var v in node.map.values) {
  -      yield* trieLeaves(v);
  -    }
  +  }
  +  for (var v in node.map.values) {
  +    yield* trieLeaves(v);
     }
   }
  
positive.code:       print('  $line');
      }
    }
  }
  
  int compareNodesByCountAndStack(TrieNode a, TrieNode b) {
  
negative.code: 
    int get length => members.length;
  
    TrieNode(this.key, this.depth);
  
    String toString() => 'TrieNode(#$length)';
  }
  
  void enter(Record record, int depth, TrieNode root) {
    // Cluster on printed stack.
    if (depth >= stackPrintLength || depth >= record.stack.length) {
      root.members.add(record);
      return;
    }
    var key = record.stack[depth];
    var node = root.map[key] ??= new TrieNode(key, depth + 1);
    enter(record, depth + 1, node);
  