code: func ExprNames(expr Expr) []VarRef {
  	m := make(map[VarRef]struct{})
  	for _, ref := range walkRefs(expr) {
  		if ref.Val == "time" {
  			continue
  		}
  		m[ref] = struct{}{}
  	}
  
  	a := make([]VarRef, 0, len(m))
  	for k := range m {
  		a = append(a, k)
  	}
  	sort.Sort(VarRefs(a))
  
  	return a
  }
docs: // ExprNames returns a list of non-"time" field names from an expression.