A callable builtin together with the arguments it accepts, so semantic
analysis can reject a bad call without running it. Both come from the same
#[derive(BuiltinFunction)], so they cannot drift apart.
The lazy scalar an object carries, so a single name can be both a namespace
and a value: dayofweek.monday reads a member while bare dayofweek invokes
this to get the current day. Computed from live interpreter state on each use
(never called with ()), so there is no per-bar value to keep refreshed.