Minor clean-up, added more asserts.
Preprocessor is implemented using walk().