quotemstr: lexbind uses different methods for compiled and interpreted code -- for the interpreter it essentially switches to deep (spaghetti) binding, but clears the TOS pointer whenever it does a call; for the compiler, it stores lexical variables in slots on the call frame, just like a typical compiled language (for variables which are closed over by lambda, it stores them in separate environment vectors, meaning
a single indirection to variables shared with closures)