> In general, variables & types are gensym'ed, procedures and the like are > inject'ed. This is why you can call add without an inject pragma.
This is not the reason. The symbol is inject because `name` is a parameter of the template. But it would also be injected if it wasn't because its a proc. But if `name` was used elsewhere, it would still be injected