  Wavelet trees are widely used in the representation of sequences,
permutations, text collections, binary relations, discrete points, and other
succinct data structures. We show, however, that this still falls short of
exploiting all of the virtues of this versatile data structure. In particular
we show how to use wavelet trees to solve fundamental algorithmic problems such
as {\em range quantile} queries, {\em range next value} queries, and {\em range
intersection} queries. We explore several applications of these queries in
Information Retrieval, in particular {\em document retrieval} in hierarchical
and temporal documents, and in the representation of {\em inverted lists}.
