and() makes me nervous here, because we had so much trouble with it earlier, but I think it's mostly my fearing my own bias in favour of it, and I'm pendulum swinging.  I'm happy to give it a try.  The key is just to ensure that there is no ambiguity of meaning in english, and I think this passes the test.  Similarly, if we add custom error messages, making sure that it doesn't end up messing up the clarity then we'll be alright.  In the short-term, though, let's try it.  I definitely see the advantage here, over other uses, where you  don't want to repeat the compilation job over and over.