/** * Folds an `Collection` using an effectual function f, working sequentially from left to right. * * @tsplus static effect/core/io/Effect.Ops reduce */ export function reduce( as: Collection, z: Z, f: (z: Z, a: A) => Effect ): Effect { return as.reduce(Effect.succeed(z) as Effect, (acc, el) => acc.flatMap((a) => f(a, el))) }