Guido> You've been staring at standards too much, haven't you? The Guido> difference between MUST and SHOULD isn't as clear-cut as most Guido> standards people use them.
In the ISO standards world, ``must'' doesn't mean what you probably think it does:
should: encouraged, but not required shall: required must: it is impossible for things to be otherwise
So, for example, one can imagine describing a function with a Boolean parameter named x by saying something like:
If x is true, the result shall be foo. Otherwise, x must be false, and the result shall be bar.