We saw in the previous paragraph that functions can be used, and that they can have parameters. This forces us to clarify scope.

/scope.lm

We run it with

That gives us:

in global global
in A global
in B a
in B b
in A a
in global global
in C NIL
in C c
in global c

The thesis also mentions that variables can be passed by reference instead of by value.

nested_scope.lm

That gives us:

in global global
in A global
in B a
in B b
in A a
in global global
in C NIL
in C c
in global c

It seems that this is still the case.

in global global
before block1 global
in block1 block1
in loop block1a
in block1 block1a
in A block1a
in global global