/**
* 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)))
}