let mk_slice selection =
  let n = string_of_int (1 + List.length (!Db.Slicing.Project.get_all ())) in
  let project = !Db.Slicing.Project.mk_project ("Slicing " ^ n) in
  !Db.Slicing.Request.add_persistent_selection project selection ;
  !Db.Slicing.Request.apply_all_internal project;
  if SlicingParameters.Mode.Callers.get () then
    !Db.Slicing.Slice.remove_uncalled project;
  let new_project =
    !Db.Slicing.Project.extract
      (!Db.Slicing.Project.get_name project ^ " export")
      project
  in
  !Db.Slicing.Project.set_project (Some project);
  new_project