import { Effect, Runtime } from "effect" import * as React from "react" export const useMemo: { ( factory: () => Effect.Effect, deps: React.DependencyList, ): Effect.Effect } = Effect.fnUntraced(function* ( factory: () => Effect.Effect, deps: React.DependencyList, ) { const runtime = yield* Effect.runtime() // biome-ignore lint/correctness/useExhaustiveDependencies: use of React.DependencyList return yield* React.useMemo(() => Runtime.runSync(runtime)(Effect.cached(factory())), deps) })