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