code: func (n *NodeApplyableModuleVariable) References() []*addrs.Reference {
  
  	// If we have no value expression, we cannot depend on anything.
  	if n.Expr == nil {
  		return nil
  	}
  
  	// Variables in the root don't depend on anything, because their values
  	// are gathered prior to the graph walk and recorded in the context.
  	if len(n.Addr.Module) == 0 {
  		return nil
  	}
  
  	// Otherwise, we depend on anything referenced by our value expression.
  	// We ignore diagnostics here under the assumption that we'll re-eval
  	// all these things later and catch them then; for our purposes here,
  	// we only care about valid references.
  	//
  	// Due to our GraphNodeReferenceOutside implementation, the addresses
  	// returned by this function are interpreted in the _parent_ module from
  	// where our associated variable was declared, which is correct because
  	// our value expression is assigned within a "module" block in the parent
  	// module.
  	refs, _ := lang.ReferencesInExpr(n.Expr)
  	return refs
  }
docs: // GraphNodeReferencer