    *   @p j are equivalent: neither one is less than the other. It is not
    *   guaranteed that the relative order of these two elements will be
    *   preserved by sort.
+   * - Let `in` be one of `{d_keys_in, d_values_in}` and `out` be any of
+   *   `{d_keys_out, d_values_out}`. The range `[out, out + num_items)` shall 
+   *   not overlap `[in, in + num_items)`, 
+   *   `[d_begin_offsets, d_begin_offsets + num_segments)` nor
+   *   `[d_end_offsets, d_end_offsets + num_segments)` in any way.
    *
    * @par Snippet
    * The code snippet below illustrates the batched sorting of three segments

   *   @p x precedes @p y, and if the two elements are equivalent (neither
   *   @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that
   *   @p x still precedes @p y.
   *
   * @par Snippet
   * The code snippet below illustrates the batched sorting of three segments

   *   @p x precedes @p y, and if the two elements are equivalent (neither
   *   @p x < @p y nor @p y < @p x) then a postcondition of stable sort is that
   *   @p x still precedes @p y.
   * - Let `cur = d_keys.Current()` and `alt = d_keys.Alternate()`.
   *   The range `[cur, cur + num_items)` shall not overlap 
   *   `[alt, alt + num_items)`. Both ranges shall not overlap
   *   `[d_begin_offsets, d_begin_offsets + num_segments)` nor
   *   `[d_end_offsets, d_end_offsets + num_segments)` in any way.
   *
   * @par Snippet
   * The code snippet below illustrates the batched sorting of three segments
