@ltratt @jryans historically compilers arose as merely a pre-processing / partial evaluation step for interpreters: if the code is fixed for the duration of your execution you can partially evaluate all the interpreter opcode-dispatch choices (in between choices that depend on residual runtime data that's not yet fixed).