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