In contrast to top-level function definitions, the scope of the definitions in a local are limited. Specifically, the scope of local definitions is the local -expression. Consider the definition of an auxiliary function f in a local -expression. Since the scope of a function name or a function parameter is a textual region, people often draw a box to indicate some scope. In this example, the box describes the scope of the definitions of f and g .
Holes can also occur in the scope of a parameter definition.
The scope of the latter is nested in the scope of the former and is thus a hole for the scope of the outer use of x . In general, if the same name occurs more than once in a function, the boxes that describe the corresponding scopes never overlap. In some cases the boxes are nested within each other, which gives rise to holes. Still, the picture is always that of a hierarchy of smaller and smaller nested boxes. Draw a box around the scope of each binding occurrence of sort and alon .