We consider the problem of representing, in a compressed format, a bit-vector~$S$ of $m$ bits with $n$ $mathbf{1}$s, supporting the following operations, where $b in { mathbf{0}, mathbf{1} }$: begin{itemize} item $mathtt{rank}_b(S,i)$ returns the number of occurrences of bit $b$ in the prefix $Sleft[1..iright]$; item $mathtt{select}_b(S,i)$ returns the position of the $i$th occurrence of bit $b$ in $S$. end{itemize} Such a data structure is called emph{fully indexable dictionary (textsc{fid})} [Raman, Raman, and Rao, 2007], and is at least as powerful as predecessor data structures. Viewing $S$ as a set $X = { x_1, x_2, ldots, x_n }$ of $n$ distinct integers drawn from a universe $[m] = {1, ldots, m}$, the predecessor of integer $y in [m]$ ...