code: func ForEach(filter Filter, fn func(s string)) error {
  	in := make(chan string)
  	close(in)
  	out := make(chan string, channelBuffer)
  	e := &filterErrors{}
  	go runFilter(filter, Arg{In: in, Out: out}, e)
  	for s := range out {
  		fn(s)
  	}
  	return e.getError()
  }
docs: // ForEach calls fn(s) for every item s in the output of filter and
  // returns either nil, or any error reported by the execution of the filter.