let test_and_merge ~old new_ =
if LocInfo.is_included new_.loc_info old.loc_info then (false, old)
else
let new_loc_info = LocInfo.join old.loc_info new_.loc_info in
let new_outputs =
Locations.Zone.meet old.under_outputs new_.under_outputs
in
let new_state =
{ loc_info = new_loc_info ; under_outputs = new_outputs }
in
true, new_state