Mid-refactor to separate compile and eval stages.