Assigns a new value to a global variable.
The symbol name must have been previously bound to a global
variable, and that variable must not have been frozen. This
function changes the value currently stored in the global variable.
Rather than calling global= directly, you should usually just write (= name new-val).
This will attempt to mutate the global variable bound to name, unless it's currently
shadowed by a local variable.
The ? special syntax is supported. (global= (? name) new-val) will succeed, and do
nothing, if name is not currently bound to a global.