(ref: TRef.TRef<number>)
| 270 | it.effect("eventually - succeeds", () => |
| 271 | Effect.gen(function*() { |
| 272 | const f = (ref: TRef.TRef<number>) => |
| 273 | STM.gen(function*() { |
| 274 | const n = yield* TRef.get(ref) |
| 275 | return yield* n < 10 ? |
| 276 | pipe(ref, TRef.update((n) => n + 1), STM.zipRight(STM.fail("Ouch"))) : |
| 277 | STM.succeed(n) |
| 278 | }) |
| 279 | const transaction = pipe( |
| 280 | TRef.make(0), |
| 281 | STM.flatMap((ref) => STM.eventually(f(ref))) |
no test coverage detected