code: func (me *PriorityBitmap) Set(bit int, priority int) bool {
  	if p, ok := me.priorities[bit]; ok && p == priority {
  		return false
  	}
  	if oldPriority, deleted := me.deleteBit(bit); deleted && oldPriority == priority {
  		panic("should have already returned")
  	}
  	if me.priorities == nil {
  		me.priorities = make(map[int]int)
  	}
  	me.priorities[bit] = priority
  	if me.om == nil {
  		me.om = orderedmap.New(bitLess)
  	}
  	_v, ok := me.om.GetOk(priority)
  	if !ok {
  		// No other bits with this priority, set it to a lone int.
  		me.om.Set(priority, bit)
  		return true
  	}
  	switch v := _v.(type) {
  	case int:
  		newV := bitSets.Get().(map[int]struct{})
  		newV[v] = struct{}{}
  		newV[bit] = struct{}{}
  		me.om.Set(priority, newV)
  	case map[int]struct{}:
  		v[bit] = struct{}{}
  	default:
  		panic(v)
  	}
  	return true
  }
docs: // Returns true if the priority is changed, or the bit wasn't present.