shuffle predicates around to group them more sensibly

...and add some comments to block out those groups, to match
more closely the docs and tests.