C.ScopeScopes for interpretation: make local storage identifiers unique accross function calls, if needed.
val global : init:bool -> tThe global scope during runtime or init, depending on init flag.
val new_local : AST.identifier -> tnew_local_scope subprogram_name returns a new identifier for the call to the function named subprogram_name.