Yep, I debated on doing that as a separate step. So assuming that you have already done that AND generated a new expression. In the second visitor that generators the domains, you still need to record whether the parent was a negation when processing the child node, which is logically only a short hop from actually just integrating the two steps together.