7.2.3.2 Redefining built-in functions

By default, built-in functions are protected—that is, they may not be redefined by an @m command. (To do so cavalierly invites many kinds of weird disasters.) If it is absolutely necessary to redefine a built-in function, use the command-line option ‘-Tb’ (see -Tb’: Permit built-functions to be redefined).

Many of FWEB’s “built-in functions” are in fact ordinary macros that are implemented in terms of lower-level built-ins. An example is $POW (see $POW: Exponentiation), which is constructed from the built-in function $EVAL (see $EVAL: Evaluate a macro expression). By default, such macros are also protected against redefinition; to override, use the option ‘-Tm’ (see -Tm’: Permit user macros to be redefined).