The scope of a procedure defines its visibility to other procedures.
If a procedure is visible, it can be called and thus executed.
The scope can be either private or public.
In private scope, the procedure is only visible from procedures in the same directory (external procedure) or the
same file (program or library).
The scope of local procedures is always private to the current program, and
external procedures can never see them.
In public scope, the procedure is visible to all other procedures.