code: def _forward_iterator(self):
          "Returns a forward iterator over the trie"
          path = [(self, 0, Bits())]
          while path:
              node, idx, prefix = path.pop()
              if idx==0 and node.value is not None and not node.prune_value:
                  yield (self._unpickle_key(prefix), self._unpickle_value(node.value))
              if idx<len(node.children):
                  path.append((node, idx+1, prefix))
                  link = node.children[idx]
                  if not link.pruned:
                      path.append((link.node, 0, prefix + link.prefix)f _forward_iterator(self):
          "Returns a forward iterator over the trie"
          path = [(self, 0, Bits())]
          while path:
              node, idx, prefix = path.pop()
              if idx==0 and node.value is not None and not node.prune_value:
                  yield (self._unpickle_key(prefix), self._unpickle_value(node.value))
              if idx<len(node.children):
                  path.append((node, idx+1, prefix))
                  link = node.children[idx]
                  if not link.pruned:
                      path.append((link.node, 0, prefix + link.prefix))
docs: Returns a forward iterator over the trie