pub unsafe fn deallocating_next_unchecked(&mut self) -> (K, V) {
        super::mem::replace(self, |leaf_edge| unsafe {
            leaf_edge.deallocating_next().unwrap_unchecked()
        })
    }
Visits leaf nodes and internal KVs in order of ascending keys, and also
visits internal nodes as a whole in a depth first order, meaning that
internal nodes precede their individual KVs and their child nodes.
benchmarks/haystacks/code/rust-library.rs