Why the evaluator is separate from the parser
The parser answers without computing. An answer that does not compute is an answer that can be tested alone.
The walk is the contract
Every later pass walks the same tree. The walk is the shape every pass agrees on, and the agreement is the file.