let map_i f m = match m with | Top _ -> top | Map m -> M.fold (fun k vl acc -> join acc (f k vl)) m bottom