I don't bother writing a recursive step on every expression in the syntax. It's easier to find things that look like ASTs and make extra sure that they are, and then have this generic recursive step.