import { Eq } from "./Eq"; export interface Ord> extends Eq { leq(a: K): boolean; } export declare function eq>(a: K, b: K): boolean; export declare type Comparator = (x: T, y: T) => number; export interface JoinSemilattice { join(...ts: T[]): T; bot: T; } export interface MeetSemilattice { meet(...ts: T[]): T; top: T; } export interface Lattice extends JoinSemilattice, MeetSemilattice { } export interface BooleanLattice extends Lattice { negate(t: T): T; }