I sat on the old ugly approach for a few days before realizing it was keeping me from moving forward. How could I forget defvar?? Anyways, I should have just thrown the crappy code over the wall sooner and gotten your feedback.
---
I briefly considered threads for coroutines[1] but recoiled. I may warm to the idea after agonizing over other options ^_^
I had no clue whether your replacement of 'let would work with special variables. If it does, awesome. ^_^
By the way, I used [] for the initial value of * yield* just because I didn't know what you wanted to do there. Actually, it would be amusing for 'yield to drop to the debugger by default and coroutine with the user.
---
"I briefly considered threads for coroutines but recoiled. I may warm to the idea after agonizing over other options ^_^"
I just wanted to make sure the idea was out there in the open. I don't actually have an opinion for or against it. ^^;