let diff_if_one m1 m2 =
match m1 with
| Top _ -> m1
| Map mm1 ->
try
let k2,v2 = find_lonely_binding m2 in
let v1 = find_or_bottom k2 mm1 in
let v = V.diff_if_one v1 v2 in
Map (add_or_bottom k2 v mm1)
with Not_found -> m1