const prog = Effect.gen(function* () {
const effect1 = someEffect.pipe(
Effect.provide(ServiceAImpl(options))
) // requires ServiceA
const effect2 = Effect.gen(function* () {
const effect3 = anotherEffeect.pipe(
Effect.provide(ServiceAImpl(options))
) // requires ServiceA
const effect4 = fooEffect // requires ServiceA
})
}).pipe(Effect.provide(ServiceAImpl(options)) // requires ServiceA because of fooEffect
const prog = Effect.gen(function* () {
const effect1 = someEffect.pipe(
Effect.provide(ServiceAImpl(options))
) // requires ServiceA
const effect2 = Effect.gen(function* () {
const effect3 = anotherEffeect.pipe(
Effect.provide(ServiceAImpl(options))
) // requires ServiceA
const effect4 = fooEffect // requires ServiceA
})
}).pipe(Effect.provide(ServiceAImpl(options)) // requires ServiceA because of fooEffect