// sendEmail : Mail => Promise<void>
// emailsSent() : () => void
const f = Effect.gen(function*() {
...
yield* Effect.forEach(mails: Array<Mail>, (m) =>
pipe(
Effect.promise(() => sendEmail(m)),
Effect.tap(metrics.emailSent()),
),
)
}
// sendEmail : Mail => Promise<void>
// emailsSent() : () => void
const f = Effect.gen(function*() {
...
yield* Effect.forEach(mails: Array<Mail>, (m) =>
pipe(
Effect.promise(() => sendEmail(m)),
Effect.tap(metrics.emailSent()),
),
)
}