let fold_enum ~split_non_enumerable f m acc =
match m with
| Top _ -> raise Error_Top
| Map m ->
try
M.fold
(fun k vl acc ->
let g one_ival acc =
let one_loc = inject k one_ival in
f one_loc acc
in
V.fold_enum ~split_non_enumerable g vl acc)
m
acc
with V.Error_Top -> raise Error_Top