I don't think we ever defined "valid GENERIC" that way. About a year ago, when we tried to define it, that's what we came up with. If that isn't the definition, then what *is*? The problem is that we have no document that says what is and is not valid GENERIC. At least the proposed definition can answer the question of whether or not something is valid.
If we had done that, the C and C++ front ends wouldn't have had to be converted to make them produce valid GENERIC. I'm talking about *expressions* and I think you're talking about statements.