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