const program1 = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
Effect.uninterruptibleMask((restore) =>
Effect.gen(function*() {
yield* Effect.log("before")
yield* restore(effect)
yield* Effect.log("after")
})
)
const program2 = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
Effect.gen(function*() {
yield* Effect.log("before").pipe(Effect.uninterruptible)
yield* effect
yield* Effect.log("after").pipe(Effect.uninterruptible)
})
const program1 = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
Effect.uninterruptibleMask((restore) =>
Effect.gen(function*() {
yield* Effect.log("before")
yield* restore(effect)
yield* Effect.log("after")
})
)
const program2 = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
Effect.gen(function*() {
yield* Effect.log("before").pipe(Effect.uninterruptible)
yield* effect
yield* Effect.log("after").pipe(Effect.uninterruptible)
})