code: func (a Fields) Names() []string {
  	names := []string{}
  	for _, f := range a {
  		switch expr := f.Expr.(type) {
  		case *Call:
  			names = append(names, expr.Name)
  		case *VarRef:
  			names = append(names, expr.Val)
  		case *BinaryExpr:
  			names = append(names, walkNames(expr)...)
  		case *ParenExpr:
  			names = append(names, walkNames(expr)...)
  		}
  	}
  	return names
  }
docs: // Names returns a list of field names.