pub unsafe fn next_unchecked(&mut self) -> (&'a K, &'a V) {
        super::mem::replace(self, |leaf_edge| {
            let kv = leaf_edge.next_kv();
            let kv = unsafe { kv.ok().unwrap_unchecked() };
            (kv.next_leaf_edge(), kv.into_kv())
        })
    }
Moves the leaf edge handle to the next leaf edge and returns the key and value
in between, deallocating any node left behind while leaving the corresponding
edge in its parent node dangling.

# Safety
- There must be another KV in the direction travelled.
- That KV was not previously returned by counterpart `next_back_unchecked`
on any copy of the handles being used to traverse the tree.

The only safe way to proceed with the updated handle is to compare it, drop it,
call this method again subject to its safety conditions, or call counterpart
benchmarks/haystacks/code/rust-library.rs