typedef int (*compar_t)(void const*, void const*);

type_len VEC_BSRCHF(int, intvec_t* pvec, int match, compar_t compar);
   Returns the position of the first occurrence of `match' in `pvec', using
   `compar' to determine equality.  If there are no occurrences, returns the
   position where `match' can be inserted to retain the sort described by
   `compar'.

type_len VEC_BSRCHL(int, intvec_t* pvec, int match, compar_t compar);
   Returns the position after the last occurrence of `match' in `pvec', using
   `compar' to determine equality.  If there are no occurrences, returns the
   position where `match' can be inserted to retain the sort described by
   `compar'.

type_len VEC_BSRCHR(int, intvec_t* pvec, int match, compar_t compar,
                    type_len* first, type_len* last);
   Returns the number of occurrences of `match' in `pvec', using `compar' to
   determine equality.  After this call, *`first' and *`last' contain the
   positions of the first and after the last occurrences of `match',
   respectively.  If there are no occurrences, *`first' and *`last' are equal
   and both give the position where `match' can be inserted to retain the sort
   described by `compar'.

type_len VEC_BSRCHC(int, intvec_t* pvec, int match, compar_t compar);
   Returns the number of occurrences of `match' in `pvec', using `compar' to
   determine equality.
