However, as noted in section 2.2, even if the variable occurs just once, it is not always a good idea to inline it.
If we inline x at its (single) occurrence site, foo will be called every time f is.
Users use defun-inline instead of defun if they intend for the function to be inlined, and defun-exec in place of defun otherwise.
To support function inlining, we implement two macros: defun-inline and defun-exec.
We finally discovered the three-phase inline mechanism we have described.
Concerning the last of these items, notice that we (unconventionally) use the term "inline" equally for both functions and non-functions.
We assume that f and h have already been defined using defun-inline or defun-exec.
As an example, consider the following definitions of functions foo and bar where we wish to inline all calls of foo.