let compute_call kf ~call_kinstr initial_state actuals =
  let with_formals = 
    actualize_formals kf initial_state actuals 
      (fun expr formal -> 
        if bitsSizeOf (typeOf expr) <> bitsSizeOf (formal.vtype)
        then raise Eval_stmts.Wrong_function_type)
  in
  Db.Value.merge_initial_state kf with_formals;
  let stack_without_call = for_callbacks_stack () in
  Db.Value.Call_Value_Callbacks.apply
    (with_formals, ((kf, call_kinstr) :: stack_without_call));
  match compute_call_to_builtin kf initial_state actuals with
    | Some r -> r
    | None ->
        compute_call_to_cil_function kf initial_state with_formals call_kinstr