The critical thing is that the compiler (or macro system) needs to check that you've checked all the alternatives.