The compiler error we hit as we were running out of time was due to the invisible underscores! Somehow, I had typed:
for_h := range ...
but we couldn't see the underscore due to the problem with my editor and the font size change!
There was one more problem I fixed in the reducer, besides the compiler error. A common pitfall in Go is when you write a loop with an inner function / go routine that uses the containing loop's iterator... you need to pass the value as an argument of the inner function, or otherwise all the go routines will share the same variable containing the last value of the loop!
The benchmarks on my computer: No concurrency: 18s Concurrent: 5s
You can run the benchmark yourself like this: go test -bench=.
The serial / no concurrency implementation is not included here, but it's easy to write yourself.
Hope you had fun, enjoy!