An iterator over the type substructure. WARNING: this does not keep track of the region depth.
- We push
GenericArgs on the stack in reverse order so as to maintain a pre-order traversal. As of the time of this writing, the fact that the traversal is pre-order is not known to be significant to any code, but it seems like the natural order one would expect (basically, the order of the types as they are written).