Actually, yes, you can do it that way too:
The action-processing success flag is a truth state that varies.
The modified generate action rule is listed instead of the generate action rule in the turn sequence rulebook.
The record action success rule is listed before the carry out stage rule in the specific action-processing rulebook.
This is the modified generate action rule:
now the action-processing success flag is false;
abide by the generate action rule;
if the action-processing success flag is false, rule succeeds.
This is the record action success rule: now the action-processing success flag is true.
You can replace the “Rules” section in my earlier example with this code (and change the “skip turn saying” to just “say”) and it should work.
A possibly surprising side effect of this implementation is that successful implicit actions will also allow time to pass; that is, if you enter the commands “drop watch”, “eat watch”, “eat watch” in sequence, the first eating attempt will take a turn (because the player picks up the watch before realizing that it’s inedible) but the second does not (because he already carries it). If this seems like a problem to you, consider implementing a “sanity check” rulebook like in Example 196: “Delicious, Delicious Rocks”.
Honestly, it would make a lot more sense if Inform considered the carrying requirements rule, which is where the implicit taking is handled, after the check stage rules. However, I suspect that simply moving the rule there might break some standard check rules which assume that, by the check stage, if the player doesn’t carry something it’s because he couldn’t pick it up. If you do want to try such a drastic change, though, here’s the code to do it (use at your own risk!):
The carrying requirements rule is listed before the carry out stage rule in the specific action-processing rules.
The carrying requirements rule is not listed in the action-processing rules.
NB: If you want to combine these two snippets, make sure the carrying requirements rule ends up before the record action success rule, otherwise actions that fail due to carrying requirements will still take a turn. (You can check this in the Inform IDE’s Index tab, under “rules”.) In fact, it might generally make more sense to record the success of the action before the “after” stage instead of the “carry out” stage, since at that point we can be sure that the action has been successfully completed.