Argument lists are encapsulated within a structure:
arglist (vars)
The vars field is expected to always be a list of binding identifiers. To distinguish between the different structures of argument lists, a sub-type is used. In Core Scheme, argument lists in the input can only be (syntactic) lists of identifiers:
sym-arglist : arglist ()
Higher language levels may permit more kinds of argument lists.