code: func (n *EvalReduceDiff) Eval(ctx EvalContext) (interface{}, error) {
  	in := *n.InChange
  	out := in.Simplify(n.Destroy)
  	if n.OutChange != nil {
  		*n.OutChange = out
  	}
  	if out.Action != in.Action {
  		if n.Destroy {
  			log.Printf("[TRACE] EvalReduceDiff: %s change simplified from %s to %s for destroy node", n.Addr, in.Action, out.Action)
  		} else {
  			log.Printf("[TRACE] EvalReduceDiff: %s change simplified from %s to %s for apply node", n.Addr, in.Action, out.Action)
  		}
  	}
  	return nil, nil
  }
docs: // TODO: test