code: func (m ModuleInstance) CallInstance() (ModuleInstance, ModuleCallInstance) {
  	if len(m) == 0 {
  		panic("cannot produce ModuleCallInstance for root module")
  	}
  
  	inst, lastStep := m[:len(m)-1], m[len(m)-1]
  	return inst, ModuleCallInstance{
  		Call: ModuleCall{
  			Name: lastStep.Name,
  		},
  		Key: lastStep.InstanceKey,
  	}
  }
docs: // CallInstance returns the module call instance address that corresponds to
  // the given module instance, along with the address of the module instance
  // that contains it.
  //
  // There is no call for the root module, so this method will panic if called
  // on the root module address.
  //
  // In practice, this just turns the last element of the receiver into a
  // ModuleCallInstance and then returns a slice of the receiever that excludes
  // that last part. This is just a convenience for situations where a call\
  // address is required, such as when dealing with *Reference and Referencable
  // values.