code: func (h *Histogram) internalFind(hb *bin) (bool, uint16) {
  	if h.used == 0 {
  		return false, 0
  	}
  	f2 := hb.newFastL2()
  	if h.lookup[f2.l1] != nil {
  		if idx := h.lookup[f2.l1][f2.l2]; idx != 0 {
  			return true, idx - 1
  		}
  	}
  	rv := -1
  	idx := uint16(0)
  	l := int(0)
  	r := int(h.used - 1)
  	for l < r {
  		check := (r + l) / 2
  		rv = h.bvs[check].compare(hb)
  		if rv == 0 {
  			l = check
  			r = check
  		} else if rv > 0 {
  			l = check + 1
  		} else {
  			r = check - 1
  		}
  	}
  	if rv != 0 {
  		rv = h.bvs[l].compare(hb)
  	}
  	idx = uint16(l)
  	if rv == 0 {
  		return true, idx
  	}
  	if rv < 0 {
  		return false, idx
  	}
  	idx++
  	return false, idx
  }
docs: // find where a new bin should go