anchor.diff:              !current.hasKeyAndValue &&
               !current.hasNodes) {
             current = nodes.removeLast();
  -          current.removeNode(parts.removeLast());
  +          current.removeChild(parts.removeLast());
           }
           // Return the value of the remove node.
           return value;
  
positive.code:   /// Root node of the tree.
    final TrieNode<K, P, V> _root;
  
    /// Number of values in the tree.
    int _length = 0;
  
    /// Internal constructor for the [Trie].
    Trie._(this._root, this._getParts)
        : assert(!_root.hasKeyAndValue,
              'The initial root should not have a key or value.'),
          assert(!_root.hasNodes,
              'The initial root node should not have child nodes.');
  
    @override
    int get length => _length;
  
negative.code:       if (element.hasKeyAndValue) {
          yield element;
        }
        queue.addAll(element.children.reversed
            .where((element) => element.hasKeyAndValue || element.hasNodes));
      }
    }
  