There are validations in compile.c that can move to earlier stages (AST validation or symtable construction). And the compiler is modifying the symbol table (setting ``ste_coroutine``), which it really shouldn't be doing. This will simplify the compiler, which is one of the largest code components of the interpreter. <!-- gh-linked-prs --> ### Linked PRs * gh-121273 * gh-121297 * gh-121361 <!-- /gh-linked-prs -->