Conceptually separate the symbol name from the file name.
Correctly check whether to record things as changeable.
Add new builtin evaluate.
Just evaluate the second slot.

No recording should happen.
Add builtin get_modifiable_value.