let mk_forward_composition kf pre_ki ki called_func pre_st in_func_st post =
let new_st,new_tr = mk_empty_pre_or_post_bycase () in
Array.iteri
(fun index assocs ->
let s,t = compose_assocs_post assocs post in
new_st.(index)<-s;
new_tr.(index)<-t
)
in_func_st;
update_action_call kf pre_ki ki called_func pre_st (fst post);
(new_st,new_tr)