import { Comparison , Comparer } from "@esfx/equatable" ; import { isIterable } from "@esfx/internal-guards" ; /**
 * Represents an `Iterable` that is inherently ordered.
 */ export interface OrderedIterable < T > extends Iterable < T > { param keySelector param comparer param descending [ OrderedIterable . thenBy ] < K > ( keySelector , comparer , descending ) : OrderedIterable < T > ; } export namespace OrderedIterable { export const thenBy = Symbol . for ( "@esfx/iter-ordered:OrderedIterable.thenBy" ) ; export function hasInstance ( x ) { return isIterable ( x ) && OrderedIterable . thenBy in x ; } }