UNPKG

@prelude/cmp

Version:

Cmp module.

42 lines (33 loc) 678 B
/** Comparision result type. */ export type R = | -1 | 0 | 1 /** Comparision function type. */ export type Cmp<Lhs, Rhs = Lhs> = (lhs: Lhs, rhs: Rhs) => R /** Curried comparision function type. */ export type Cmp1<T> = (a: T) => R /** Comparision function type. */ export type t<Lhs, Rhs = Lhs> = Cmp<Lhs, Rhs> export type Tail<T> = T extends [_: unknown, ...tail: infer R] ? R : never /** Equal comparision result. */ export const eq: R = 0 /** Ascending comparision result. */ export const asc: R = -1 /** Descending comparision result. */ export const dsc: R = 1 export type Value<T> = T extends Cmp<infer U> ? U : never