import type * as P from "@principia/prelude"; import * as HKT from "@principia/prelude/HKT"; import type { Either } from "../Either"; import * as X from "../XPure"; import { Fail } from "./fail"; import type { EIO, URI, V } from "./model"; /* * ------------------------------------------- * Fallible EIO * ------------------------------------------- */ export const recover: (fa: EIO) => EIO> = X.recover; export const absolve: (fa: EIO>) => EIO = X.absolve; export const Fallible: P.Fallible<[URI], V> = HKT.instance({ ...Fail, absolve, recover });