/** * Given a tuple of `Equivalence`s returns a `Equivalence` for the tuple. * * @tsplus static Equivalence/Ops tuple */ export function tuple>>( ...eqs: T ): Equivalence< Readonly< { [K in keyof T]: T[K] extends Equivalence ? A : never } > > { return Equivalence((x, y) => eqs.every((E, i) => E.equals(x[i], y[i]))) }