code: func FilterOut(err error, fns ...Matcher) error {
  	if err == nil {
  		return nil
  	}
  	if agg, ok := err.(Aggregate); ok {
  		return NewAggregate(filterErrors(agg.Errors(), fns...))
  	}
  	if !matchesError(err, fns...) {
  		return err
  	}
  	return nil
  }
docs: // FilterOut removes all errors that match any of the matchers from the input
  // error.  If the input is a singular error, only that error is tested.  If the
  // input implements the Aggregate interface, the list of errors will be
  // processed recursively.
  //
  // This can be used, for example, to remove known-OK errors (such as io.EOF or
  // os.PathNotFound) from a list of errors.