> In Go, we can do this by closing a channel, because a receive operation on a closed channel can always proceed immediately, yielding the element type's zero value.
for n := range c {
select {
case out <- n:
case <-done:
}
}
This, is brilliant.