/** * Returns a `Ord` for an `ImmutableArray` given an `Ord`. * * @tsplus static ImmutableArray.Ops getOrd */ export function getOrd(O: Ord): Ord> { return Ord((a, b) => { const aLen = a.array.length const bLen = b.array.length const len = Math.min(aLen, bLen) for (let i = 0; i < len; i = i + 1) { const ordering = O.compare(a.array[i]!, b.array[i]!) if (ordering !== 0) { return ordering } } return Ord.number.compare(aLen, bLen) }) }