I'm still new to Go, but the functions don't have to be anonymous, right? What would be wrong with defining all of your functions somewhere (for updates, iterations, etc.) and passing them by name to Bolt's?
As others points out there's nothing wrong the Bolt code, it's fine and pretty common, I just don't like it.
This is how I'd do it.