let add_info_sig_call calls call k e replace =
let new_sgn old = Signature.add_info old k e replace in
let rec add l = match l with
| [] -> [(call, (None, new_sgn Signature.empty))]
| ((call1, (e1, sgn1)) as c1) :: tl ->
let sid = call.sid in
let sid1 = call1.sid in
if sid = sid1
then (call, (e1, new_sgn sgn1)) :: tl
else if sid < sid1
then (call, (None, new_sgn Signature.empty)) :: l
else (c1 :: (add tl))
in add calls