code: func NewWriter(dstW io.Writer, newWriter NewWriterFunc) Writer {
  	w := &writer{
  		dstW: dstW,
  	}
  	w.zw = newWriter(&w.xw)
  	return w
  }
docs: // NewWriter creates a stackless writer around a writer returned
  // from newWriter.
  //
  // The returned writer writes data to dstW.
  //
  // Writers that use a lot of stack space may be wrapped into stackless writer,
  // thus saving stack space for high number of concurrently running goroutines.