code: func filterErrors(list []error, fns ...Matcher) []error {
  	result := []error{}
  	for _, err := range list {
  		r := FilterOut(err, fns...)
  		if r != nil {
  			result = append(result, r)
  		}
  	}
  	return result
  }
docs: // filterErrors returns any errors (or nested errors, if the list contains
  // nested Errors) for which all fns return false. If no errors
  // remain a nil list is returned. The resulting silec will have all
  // nested slices flattened as a side effect.