We may need a new kind of exception (sth like `MisusedOptionException` but with better name) to represent such cases.