This is the binding function used when the formal parameter of a function is VAR. This means that we are dealing with a function of the form f@x:.... This means that we have to create a table of evaluated actual arguments, and bind this table to the variable (e.g. x) of the function. This is reflected in the code. Notice that the code is extremely subtle: We have to make a table of evaluated actual arguments, so one might expect to see a for-loop to evaluate all the actuals one by one. In fact this iteration is there, but is performed by the 'initialization of table'-semantics of the Pico we are using to implement MC-eval. It is the expression arg[siz]: eval(tab[idx:= idx+1]); that takes care of the iteration. The result is a Pico table, that must be wrapped in a TAB. This wrapped table is called exp in the code. It is this table that is bound to the name by the final add. Hence, a table is bound to the formal parameter (e.g. x).