if (this.data.subarray(i, i + ITEM_SIZE).some(Boolean)) {
        yield (i: any);
        count++;
      }
Nodes are stored in a `SharedTypeMap`, keyed on node id plus an edge type.
This means that for any given unique node id, there may be `e` nodes in the
map, where `e` is the number of unique edge types in the graph.

The _hash_ for a node is simply the node id (as issued by `getId`),
and forms the head of linked list of unique _edge types_ connected
to or from the same node id.

In addition to a unique edge type, each Node contains the heads and tails
of doubly linked lists of incoming and outgoing edges of the same type.

Note that the links in the doubly linked lists are Edges (not Nodes),
which are stored in a corresponding `EdgeTypeMap`.