We duplicate the user function code in both the `mod opened {}` and `mod forbidden {}` sections, and it'd be great if we didn't. The primary downside to this is that when there's compilation errors, they're generally duplicated.