code: func EvalNodeFilterOp(op walkOperation) EvalNodeFilterFunc {
  	return func(n EvalNode) EvalNode {
  		include := true
  		if of, ok := n.(EvalNodeOpFilterable); ok {
  			include = of.IncludeInOp(op)
  		}
  		if include {
  			return n
  		}
  
  		return EvalNoop{}
  	}
  }
docs: // EvalNodeFilterOp returns a filter function that filters nodes that
  // include themselves in specific operations.