 type that has a strict weak ordering, via templating, but requires
        definitions of a get_char (acts like x[offset] on a string or a byte array),
        get_length (returns length of the string being sorted), and a comparison
        functor. Individual characters returned by get_char must support the != operator
        and have an unsigned value that defines their lexicographical order.
      </p>
<p>
        This algorithm is not efficient for character types larger than 2 bytes each,
        and