Right now, it seems like a program that calls begin_setup() after end_setup() would still compile. Would it be possible to get rid of begin_setup() and just the token as an argument to main? That way there would be no way to get another one after it's been dropped.