let inter u v =
    Map.fold u ~init:Map.Poly.empty ~f:(fun ~key:k ~data:set_u accu ->
      match Map.find v k with
      | Some set_v -> Map.Poly.add accu ~key:k ~data:(Biocaml_iset.inter set_u set_v)
      | None -> accu
    )