Benjamin Goldberg wrote:
> Why would any of these require that strings be eval()ed?
> 
> You compile the string to bytecode, *once*, and pass this compiled code
> as the callback for your keystrokes, window events, and async file
> operations.  You wouldn't pass a string to be eval()ed -- that would be
> silly.

Bindings substitute their values. File events get additional arguments.
Etc.

> Furthermore, even if one did do something that foolish, the compiler
> needs to be loaded only once... 

I missed your parenthetical comment on first reading. Yes, sorry.