public static bool PreviousPermutation <T, TLessThan>(this T[] array, IntT start, IntT count) where TLessThan : IO.IFunc <T, T, bool>, new()
 {
     return(PreviousPermutation(array, start, count, DefaultConstructor.Invoke <TLessThan>()));
 }
 public static bool NextPermutation <T, TLessThan>(this T[] array) where TLessThan : IO.IFunc <T, T, bool>, new()
 {
     return(NextPermutation(array, DefaultConstructor.Invoke <TLessThan>()));
 }