let handle_leftmost_itv ~extend_left same_values bi new_vv
((bi1,_),vv1) acc =
if Int.lt bi1 bi
then (* Part of the previous binding remains
on the left-hand-side *)
if extend_left && same_values vv1 new_vv
then (* same value -> merge keys *)
acc,bi1
else add (bi1, Int.pred bi) vv1 acc,bi
else enlarge_to_left ~extend_left same_values bi new_vv acc