import type { _A } from "@tsplus/stdlib/io/Eval/definition" /** * @tsplus static Eval.Ops tuple */ export function tuple[]>( ...[e1, e2, ...es]: EN & { readonly 0: Eval readonly 1: Eval } ): Eval< Readonly< { [K in keyof EN]: [EN[K]] extends [Eval] ? A : never } > > { const init = e1.zip(e2) return es.reduce( (acc: Eval, v) => acc.zipWith(v, (a, b) => [...a, b]), init ) }