let add_info_call idx call e ~replace =
let sid = call.sid in
let rec add l = match l with
| [] -> [(call, (Some e, Signature.empty))]
| ((call1, (_e1, sgn1)) as c1) :: tl ->
let sid1 = call1.sid in
if sid = sid1 then
(if replace then (call, (Some e, sgn1)) :: tl else raise AddError)
else if sid < sid1 then
(call, (Some e, Signature.empty)) :: l
else c1 :: (add tl)
in idx.calls <- add idx.calls