a.k.a LOL WAT?
func something(events <-chan event) {
// prelude
next := <-events
// do something with next
}
func something(events <-chan event, done <-struct{}) {
// prelude
select {
case next := <-events:
// do something with next
case <-done:
return
}
}