docs: public CharTrie rewrite(BiFunction<TrieNode, Map<Character, TrieNode>, TreeMap<Character, Long>> fn) {
      CharTrie result = new CharTrieIndex();
      rewriteSubtree(root(), result.root(), fn);
      return result.recomputeCursorDetails();
    }