@Adám ook, thanks for that. I'm still curious about the syntax of it though, so ns1∘←ns2 is a modified assignment right? If so, why does it seem that I can't replace the statement with ns1←ns1∘ns2?
@11Kilobytes @B.Wilson Not at all modified assignment. ∘ here is the Bind operator, so ns1∘← binds the symbolns1 as a left argument to the ← "function" just like what happens in 1∘+ except that there's some special-casing causing ns1 to be a symbol rather than immediately dereference to its value the way var∘+ would.
Now, the dfns auto-localiser simply localises names immediately to the left of ← (save for parens and spaces) but since ∘ is interposed between ns1 and ← then we don't autolocalise, instead falling back to overwriting the (semi-)global value of ns1.
This also means the the following works (but please don't do it!):