/**
* `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 })