@dalias I've used gotos much like this in lexers, and a few other state machines. When what you actually mean is "nonrecoverably transfer control to somewhere else", they're often the best you can do for readability in a langauge that doesn't have tail-call optimization.