Effect.fork
https://effect.website/docs/concurrency/fibers/#forking-effects
EffectをFiber (Effect)すると、新しいFiberが生成される
それにより、Effectが独立したFiberで非同期に実行されるようになる
生成されたFiberの参照を使って、後で結果を待ったり中断したりできる
例
code:ts
import { Effect } from "effect"
const fib = (n: number): Effect.Effect<number> =>
n < 2
? Effect.succeed(n)
: Effect.zipWith(fib(n - 1), fib(n - 2), (a, b) => a + b)
// fib10Fiber :: Effect<RuntimeFiber<number, never>, never, never>
const fib10Fiber = Effect.fork(fib(10))
fibを新しいfiberで実行している
メインのfiberとは独立して非同期に実行される
その新たなfiberへの参照をfib10Fiberとして取得している