export type Comparator = (a: Val, b: Val) => OutputComparator /** * If you're not sure, use Comparator instead of ComparatorStrict */ export type ComparatorStrict = (a: Val, b: Val) => OutputComparatorStrict export type OutputComparator = number export type OutputComparatorStrict = -1 | 0 | 1 export const ascending = (comparator: Comparator) => comparator export const descending = (comparator: Comparator) => (a: T, b: T) => -1 * comparator(a, b)