If you explicitly declare "The foo rule is listed before the foo rule in the baz rulebook," you get an abject failure.

Obviously the code is invalid and should be rejected by the I7 compiler.

Minimal Source Text To Reproduce

There is room.
Instead of jumping (this is the abject failure rule): do nothing.
The abject failure rule is listed before the abject failure rule in the instead rulebook.

Additional Information

"This is the report produced by Inform 7 (build 6G60) on its most recent run through:

Problem. An internal error has occurred: can't find end rule. The current sentence is 'The abject failure rule is listed before the abject failure rule in the instead rulebook' ; the error was detected at line 628 of "Chapter 23/Rules.w". This should never happen, and I am now halting in abject failure.
What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via www.inform7.com/bugs.

As for fixing your source text to avoid this bug, the last thing you changed is probably the cause, if there is a simple cause. Your source text might in fact be wrong, and the problem might be occurring because Inform has failed to find a good way to say so. But even if your source text looks correct, there are probably rephrasings which would achieve the same effect."