Ilk
Indicator of how an argument is used
The ilk of the ith argument of a badged function
symbol fn is one of three tokens with the following meanings.
- :FN - the ith argument is used exclusively as a function object by
fn; informally this means that the argument is passed only into slots of
ilk :FN in the definition of fn and that on some (syntactic)
execution paths reaches the first argument of a call of apply$.
- :EXPR - the ith argument is used exclusively as a expression object
by fn; informally this means that the argument is passed only into slots
of ilk :EXPR in the definition of fn and that on some (syntactic)
execution paths reaches the first argument of a call of ev$.
- NIL - the ith argument is never used as a function or expression
object in the definition of fn.
See badge for more details.
The ilks of all the arguments of fn are stored in the badge of fn. If each ilk of fn is NIL the badge
stores a T as the ``list'' of ilks.
The badge of fn is computed by a successful call of defwarrant on fn.
Ilks are used by the various notions of tameness controlling
whether apply$ and ev$ can properly interpret a quoted
function or expression object.