export interface Interrupt { readonly _tag: "Interrupt"; } export interface Success { readonly _tag: "Success"; readonly value: A; } export interface Failure { readonly _tag: "Failure"; readonly error: E; } export type Rejection = Interrupt | Failure; export type AsyncExit = Rejection | Success;