let add_replace idx key e replace =
let hfct = if replace then H.replace else H.add in
match key with
| Key.SigKey k ->
idx.sgn <- Signature.add_info idx.sgn k e replace
| Key.CallStmt _ -> raise CallStatement (* see add_info_call *)
| Key.SigCallKey (call, k) ->
idx.calls <- add_info_sig_call idx.calls call k e replace
| Key.VarDecl _ | Key.Stmt _ | Key.Label _ ->
hfct idx.other (Hkey.hkey key) e