Some refactorings cannot be applied if there are other refactorings available first because they require that there is not some language constructs. For instance, the requires/excludes refactorings can only be applied with simple constructs (xor, or) but not with others such as mutex or cardinality-groups.