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