I'm pretty sure things can never get confused - we run collected paths over let expression, match arms, and formal variables - none of which can nest with themselves or each other. That said, I think it is better to tidy up after myself and assert it is empty, rather than the current situation.