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.
Linked PRs