ref / Condition / Details says:
lhs := Module[{vars}, rhs /; test ]allows local variables to be shared betweentestandrhs.
Well, thank you very much, of course they are shared, both test and rhs are inside the same Module!
Jokes aside, the question is: what author wanted to tell the user? How to rephrase that to make it clear and compact?
IMO when one knows then it is kind of understandable, but for learning purposes it is just confusing/meaningless as it was for me for a very long time.
Module, that would involve local variables. Then, at some point, we may decide whether or not the rule (definition) matches as a whole, based on those computed values, by wrapping the rest of the code inModuleinsideCondition. If the condition does not hold, the pattern matcher pretends that the whole computation didn't take place, and goes on trying other rules / definitions. This semantics can't be easily reproduced had this form been absent. – Leonid Shifrin Aug 05 '16 at 14:28