Set entries of bitvector to bool, with uvec
selecting the entries to change. The return value is unspecified.

If uvec is a bit vector, then those entries where it has
#t are the ones in bitvector which are set to bool.
uvec and bitvector must be the same length. When
bool is #t it's like uvec is OR'ed into
bitvector. Or when bool is #f it can be seen as an
ANDNOT.

(define bv #*01000010)
(bit-set*! bv #*10010001 #t)
bv
⇒ #*11010011

If uvec is a uniform vector of unsigned long integers, then
they're indexes into bitvector which are set to bool.

Return a count of how many entries in bitvector are equal to
bool, with uvec selecting the entries to consider.

uvec is interpreted in the same way as for bit-set*!
above. Namely, if uvec is a bit vector then entries which have
#t there are considered in bitvector. Or if uvec
is a uniform vector of unsigned long integers then it's the indexes in
bitvector to consider.

Like scm_vector_elements (see Vector Accessing from C), but
for bitvectors. The variable pointed to by offp is set to the
value returned by scm_array_handle_bit_elements_offset. See
scm_array_handle_bit_elements for how to use the returned
pointer and the offset.