code: func (m ModuleInstance) String() string {
  	var buf bytes.Buffer
  	sep := ""
  	for _, step := range m {
  		buf.WriteString(sep)
  		buf.WriteString("module.")
  		buf.WriteString(step.Name)
  		if step.InstanceKey != NoKey {
  			buf.WriteString(step.InstanceKey.String())
  		}
  		sep = "."
  	}
  	return buf.String()
  }
docs: // String returns a string representation of the receiver, in the format used
  // within e.g. user-provided resource addresses.
  //
  // The address of the root module has the empty string as its representation.