let add_top_mark_to_fi fi m propagate actions =
  let new_top = match fi.T.fi_top with
    | None -> fi.T.fi_top <- Some m; true
    | Some old_m -> fi.T.fi_top <- Some (Marks.merge_marks [old_m; m]); false
  in
  let actions = if propagate && new_top then
    (Act.mk_appli_select_calls fi)::actions else actions
  in actions