Why re-evaluate all of the generated std lib?
This library is pretty cool, I've been wanting to do something similar for python.
I see that you carefully execute only the latest expression in the buffer (including imports). Why do you re-evaluate all of the generated std lib as well? I must be missing something there.
For now that's really a simplification. Pruning Std (and other imports in fact) needs more careful processing and diffing - possibly using a full AST parser.
Did you run into an issue with Std being re-executed?
The only issue is that it seemed inefficient. The std lib could be generated/evaluated once per session, and omitted from subsequent incremental compilations. It's a small nit for a POC like this though.