@RGS I recommend you use ⊢← rather than ∘← to change a variable. The difference is that ∘← will create the variable as a global if it doesn't already exist in a parent scope, which is less safe.
@dzaima I went through the definitions in order and tested them, so most of the errors were only a level or two down. Then just walk through the function by running lines manually to debug.
More generally, this occurs whenever you have a nested dfn (one or more lines), which doesn't return anything. And which you want to write with the Stroustrup brackets
@AviF.S. but you are returning "something" in that last (empty) "line". It just happens to be "nothing" that you're returning, and you can't assign that "nothing" to "_"
(also a simpler way to test it is with a ⋄ - {_←{⎕←'hi' ⋄}⍬}⍬ vs removing the ⋄)
@dzaima Ah, so you're saying the same is true of the second function as well, but it never gets that far because the non-assignment line 'Done' terminates execution before it can get stuck on }?
@AviF.S. "a" was the english work, and "-" was an em dash
@AviF.S. (requires the browser extension Stylus or equivalent (stylus was the original extension, but added logging or something similar that was bad for privacy))
@RGS a∘← will, if a is not found, create it in the global scope (global as in now "a" is a variable readable from the REPL regardless of how many nested levels of dfns you were in when calling a∘←1)