Module allows you to set up local variables with names that are local to the module.
Module creates new symbols to represent each of its local variables every time it is called.
Module creates a symbol with name xxx$nnn to represent a local variable with name xxx. The number nnn is the current value of $ModuleNumber.
The value of $ModuleNumber is incremented every time any module is used.
Before evaluating expr, Module substitutes new symbols for each of the local variables that appear anywhere in expr except as local variables in scoping constructs.