It actually is defined in a global scope, just with a gensym name so that it’s not named arr
anymore.
It’s a bug fix so that the behavior is actually consistent with the document now. It has always been a requirement to do this as described in the hygiene section I linked above (though it may not make a difference in global scope) but the implementation was wrong when you are calling the macro in the same module it was defined. Argueably the doc organization might have also encouraged people to use it incorrectly since it gaves multiple wrong example before introducing hygiene. I’m not really sure how to improve it though…