code: func (m ModuleInstance) Call() (ModuleInstance, ModuleCall) {
  	if len(m) == 0 {
  		panic("cannot produce ModuleCall for root module")
  	}
  
  	inst, lastStep := m[:len(m)-1], m[len(m)-1]
  	return inst, ModuleCall{
  		Name: lastStep.Name,
  	}
  }
docs: // Call returns the module call 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.
  //
  // A single module call can produce potentially many module instances, so the
  // result discards any instance key that might be present on the last step
  // of the instance. To retain this, use CallInstance instead.
  //
  // In practice, this just turns the last element of the receiver into a
  // ModuleCall 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.