/** * `Ord` provides implicit evidence that values of type `A` have a total * ordering. * * @tsplus type Ord */ export interface Ord { readonly Law: { readonly Ord: "Ord" } readonly compare: (x: A, y: A) => Ordering } /** * @tsplus type Ord/Ops */ export interface OrdOps { (compare: (x: A, y: A) => Ordering): Ord } export const Ord: OrdOps = (compare: (x: A, y: A) => Ordering): Ord => HKT.instance({ compare })