Spent an evening getting rid of some repetitive state handling code in one of my Go projects. The result is StateTrooper, a finite state machine package.