sending to two channels in order and receiving from two channels in order in a return is a bit hard to follow.    suggest this instead:    ```go  var copyErr error  // copy the output in a separate goroutine so printing can't block indefinitely  go func() {    ...    _, copyErr = io.Copy(&buf, r)    ...  }  ...  return <-resultCh, copyErr  ```