message: add qio ad a bench target
diff: +import { defaultRuntime, QIO } from "@qio/core"
  +
  import * as T from "../src/Effect"
  import { makeCustomRuntime } from "../src/Effect"
  @@ -11,6 +13,13 @@ function fibEffect(n: number): T.UIO<number> {
  (a, b) => a + b
  )
  }
  +function fibQIO(n: number): QIO<number> {
  + if (n < 2) {
  + return QIO.resolve(0)
  + }
  + // access to avoid ending up in the sync optimization that lead to stack explosion
  + return QIO.accessM(() => fibQIO(n - 1).zipWith(fibQIO(n - 1), (x, y) => x + y))
  +}
  async function fibPromise(n: number): Promise<number> {
  if (n < 2) {
  return 1
  @@ -30,6 +39,8 @@ function fibEffectGen(n: number): T.UIO<number> {
  })
  }
  +const qioRuntime = defaultRuntime()
  +
  const runtime = makeCustomRuntime()
  .traceEffect(false)
  .traceExecution(false)
  @@ -47,6 +58,11 @@ describe("Bench", () => {
  await fibPromise(10)
  }
  })
  + it("qio", async () => {
  + for (let i = 0; i < 1000; i++) {
  + await qioRuntime.unsafeExecutePromise(fibQIO(10))
  + }
  + })
  })
  describe("With Tracing", () => {
  it("effect", () => T.runPromise(T.repeatN(1000)(fibEffect(10))))
  