import type { EIO } from "../Task/model"; export type State = Done | Pending; export class Done { readonly _tag = "Done"; constructor(readonly value: EIO) {} } export class Pending { readonly _tag = "Pending"; constructor(readonly joiners: ReadonlyArray<(_: EIO) => void>) {} }