code: func (n *NodeApplyableModuleVariable) EvalTree() EvalNode {
  	// If we have no value, do nothing
  	if n.Expr == nil {
  		return &EvalNoop{}
  	}
  
  	// Otherwise, interpolate the value of this variable and set it
  	// within the variables mapping.
  	vals := make(map[string]cty.Value)
  
  	_, call := n.Addr.Module.CallInstance()
  
  	return &EvalSequence{
  		Nodes: []EvalNode{
  			&EvalOpFilter{
  				Ops: []walkOperation{walkRefresh, walkPlan, walkApply,
  					walkDestroy, walkValidate},
  				Node: &EvalModuleCallArgument{
  					Addr:   n.Addr.Variable,
  					Config: n.Config,
  					Expr:   n.Expr,
  					Values: vals,
  
  					IgnoreDiagnostics: false,
  				},
  			},
  
  			&EvalSetModuleCallArguments{
  				Module: call,
  				Values: vals,
  			},
  		},
  	}
  }
docs: // GraphNodeEvalable