import type { FiberRuntime } from "@effect/core/io/Fiber/_internal/runtime" export type FiberMessage = InterruptSignal | Stateful | Resume | YieldNow export class InterruptSignal { readonly _tag = "InterruptSignal" constructor(readonly cause: Cause) {} } export class Stateful { readonly _tag = "Stateful" constructor( readonly onFiber: (fiber: FiberRuntime, status: Fiber.Status) => void ) {} } export class Resume { readonly _tag = "Resume" constructor( readonly effect: Effect ) {} } export class YieldNow { readonly _tag = "YieldNow" }