code: func (m ModuleInstance) Less(o ModuleInstance) bool {
  	if len(m) != len(o) {
  		// Shorter path sorts first.
  		return len(m) < len(o)
  	}
  
  	for i := range m {
  		mS, oS := m[i], o[i]
  		switch {
  		case mS.Name != oS.Name:
  			return mS.Name < oS.Name
  		case mS.InstanceKey != oS.InstanceKey:
  			return InstanceKeyLess(mS.InstanceKey, oS.InstanceKey)
  		}
  	}
  
  	return false
  }
docs: // Less returns true if the receiver should sort before the given other value
  // in a sorted list of addresses.