[1]
The name undefined is predeclared in any JavaScript implementation and should not be used other than to refer to that primitive value.
[2]
We use the list list("rectangular") rather than the string "rectangular" to allow for the possibility of operations with multiple arguments, not all of the same type.
[3]
The type the constructors are installed under needn't be a list because a constructor is always used to make an object of one particular type.
[4] The function apply_generic uses the function apply_in_underlying_javascript given in section 4.1.4 (footnote 2), which takes two arguments, a function and a list, and applies the function, using the elements in the list as arguments. For example,
apply_in_underlying_javascript(sum_of_squares, list(1, 3))
returns 10.
[5]
One limitation of this organization is it permits only generic functions of one argument.
2.4.3  
Data-Directed Programming and Additivity