code: func (n *NodePlannableResourceInstanceOrphan) EvalTree() EvalNode {
  	addr := n.ResourceInstanceAddr()
  
  	// Declare a bunch of variables that are used for state during
  	// evaluation. Most of this are written to by-address below.
  	var change *plans.ResourceInstanceChange
  	var state *states.ResourceInstanceObject
  	var provider providers.Interface
  	var providerSchema *ProviderSchema
  
  	return &EvalSequence{
  		Nodes: []EvalNode{
  			&EvalGetProvider{
  				Addr:   n.ResolvedProvider,
  				Output: &provider,
  				Schema: &providerSchema,
  			},
  			&EvalReadState{
  				Addr:           addr.Resource,
  				Provider:       &provider,
  				ProviderSchema: &providerSchema,
  
  				Output: &state,
  			},
  			&EvalDiffDestroy{
  				Addr:         addr.Resource,
  				State:        &state,
  				ProviderAddr: n.ResolvedProvider,
  				Output:       &change,
  				OutputState:  &state, // Will point to a nil state after this complete, signalling destroyed
  			},
  			&EvalCheckPreventDestroy{
  				Addr:   addr.Resource,
  				Config: n.Config,
  				Change: &change,
  			},
  			&EvalWriteDiff{
  				Addr:           addr.Resource,
  				ProviderSchema: &providerSchema,
  				Change:         &change,
  			},
  			&EvalWriteState{
  				Addr:           addr.Resource,
  				ProviderAddr:   n.ResolvedProvider,
  				ProviderSchema: &providerSchema,
  				State:          &state,
  			},
  		},
  	}
  }
docs: // GraphNodeEvalable