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