pub fn remove(
        mut self,
    ) -> ((K, V), Handle<NodeRef<marker::Mut<'a>, K, V, marker::Leaf>, marker::Edge>) {
        let old_len = self.node.len();
        unsafe {
            let k = slice_remove(self.node.key_area_mut(..old_len), self.idx);
            let v = slice_remove(self.node.val_area_mut(..old_len), self.idx);
            *self.node.len_mut() = (old_len - 1) as u16;
            ((k, v), self.left_edge())
        }
    }
Chooses a balancing context involving the node as a child, thus between
the KV immediately to the left or to the right in the parent node.
Returns an `Err` if there is no parent.
Panics if the parent is empty.

Prefers the left side, to be optimal if the given node is somehow
underfull, meaning here only
benchmarks/haystacks/code/rust-library.rs