/** * Ord * * 1. a.lte(b) or b.lte(a) (totality) * 2. If a.lte(b) and b.lte(a), then a.equals(b) (antisymmetry) * 3. If a.lte(b) and b.lte(c), then a.lte(c) (transitivity) * * lte :: Ord a => a ~> a -> Boolean */ import { HKT, KindOf, URIS } from './HKT'; import { Setoid, Setoid1, Setoid2 } from './Setoid'; export interface Ord extends Setoid { readonly lte: (a: HKT, b: HKT) => boolean; } export interface Ord1 extends Setoid1 { readonly lte: (a: KindOf, b: KindOf) => boolean; } export interface Ord2 extends Setoid2 { readonly lte: (a: KindOf, b: KindOf) => boolean; }