export const all_ = (v: T, ...a: Predicate[]) => !a.some(x => !x(v)) export const all = (...a: Predicate[]) => (v: T) => all_(v, ...a) export const maxN = (max: number) => (v: number) => v <= max export const minN = (min: number) => (v: number) => v >= min export const max = (max: number) => { const f = maxN(max) return (v: { length: number }) => f(v.length) } export const min = (min: number) => { const f = minN(min) return (v: { length: number }) => f(v.length) } export * from "./validation/validators.js"