public static void experiment(PrintWriter pen, Comparable<?> val, 
      Comparable<?>[] values)
  {
    // Print original info
    pen.println("--------------------------------------------------");
    pen.println("old values: " + Arrays.toString(values));
    pen.println("val:        " + val.toString());

    // Sort! (more or less)
    int[] boundaries = Utils.pseudoSort(val, values, ezcompare);

    // Print results
    pen.println("boundaries: " + Arrays.toString(boundaries));
    pen.println("new values: " + Arrays.toString(values));

    // Check results
    for (int i = 0; i < boundaries[0]; i++)
      {
        if (ezcompare.compare(values[i], val) >= 0)
          {
            pen.println("  ERROR: values[" + i + "] (" + values[i] + ") "
                + "is not less than " + val);
          } // if
      } // for
    for (int i = boundaries[0]; i < boundaries[1]; i++)
      {
        if (ezcompare.compare(values[i], val) != 0)
          {
            pen.println("  ERROR: values[" + i + "] (" + values[i] + ") "
                + "is not equal to " + val);
          } // if
      } // for
    for (int i = boundaries[1]; i < values.length; i++)
      {
        if (ezcompare.compare(values[i], val) <= 0)
          {
            pen.println("  ERROR: values[" + i + "] (" + values[i] + ") "
                + "is not greater than " + val);
          } // if
      } // for

    // Print a helpful separator
    pen.println();
  } // experiment(PrintWriter, Comparable, Comparable[])