Compute the maximum index
M used in a declaration.
M to initialize the fresh index generator used to create fresh
variable and join point names.
Recall that we variable and join points share the same namespace in our implementation.
We say a variable (join point) index (aka name) is free in a function body
if there isn't a
Fnbody.jdecl) binding it.
In principle, we can check whether a function body
b contains an index
b.freeIndices.contains i, but it is more efficient to avoid the construction
of the set of freeIndices and just search whether
i occurs in
b or not.