For now we just split off the type pattern traversals into a separate phase.
Although we wish to move this traversal to after the mod phase, some more work is required to get that to work.
This will be done in a separate MR to keep these merges reasonably small.