code: func (a *MinMaxAllocator) Allocate(i int) (bool, error) {
  	a.lock.Lock()
  	defer a.lock.Unlock()
  
  	if !a.inRange(i) {
  		return false, ErrOutOfRange
  	}
  
  	if a.has(i) {
  		return false, ErrConflict
  	}
  
  	a.used[i] = true
  	a.free--
  
  	return true, nil
  }
docs: //Allocate allocates provided value in the allocator and mark it as used.