/** * Stack-safe IO */ import type * as HKT from "@principia/prelude/HKT"; import type { XPure } from "../XPure"; /* * ------------------------------------------- * IO Model * ------------------------------------------- */ export const URI = "IO"; export type URI = typeof URI; export type V = HKT.Auto; export interface IO extends XPure {} export type InferA = [T] extends [IO] ? A : never; declare module "@principia/prelude/HKT" { interface URItoKind { readonly [URI]: IO; } }