Aren't these options mutually exclusive? If yes, then we should either error early if both are set or force the exclusion early. Otherwise we may forget and add code that depends on options.modules without the above exclusion test.