code: static <V> int compare(Comparator<V> cmp, Object a, Object b)
      {
          if (a instanceof Special)
              return ((Special) a).compareTo(b);
          if (b instanceof Special)
              return -((Special) b).compareTo(a);
          return cmp.compare((V) a, (V) b);
      }
docs: TODO : cheaper to check for POSITIVE/NEGATIVE infinity in callers, rather than here