I thought of a challenge where you ask people to write an I7 game but they’re only allowed to write rules of one of the types – their choice.
I think Check is the best choice. You can stop defaults, allow defaults, or do anything else. You would infrequently have to duplicate code that might have been run by a default Carry Out or Report.
Before and Instead precede defaults by default, and come too early, forcing you to reproduce way more stuff (especially Instead, which blocks defaults. Sure, you can continue the action, but after you’ve done that 10 times, you’ll realise you should have picked Check).
After and Report are too late – Carry Out’s already run at that point. And Carry Out’s best suited for running code, not printing stuff (where it can’t stop the Report that would already print default stuff).
-Wade