Have `visit_*` methods which should be overriden, and `walk_*` methods which shouldn't and call `visit_*` on the current node's sub-nodes