Make ast_fold take &mut self