Failable
import type { Failable } from "https://github.gh-proxy.cn/raw.githubusercontent.com/baetheus/fun/main/failable.ts";A Failable structure is a Flatmappable that allows for alternative instances, failures, and recovery.
interface Failable <U extends Kind> extends Flatmappable<U>, Hold<U> {
readonly alt: <A, B = never, C = never, D = unknown, E = unknown>(second: $<U, [A, B, C], [D], [E]>) => (first: $<U, [A, B, C], [D], [E]>) => $<U, [A, B, C], [D], [E]>;
readonly fail: <A = never, B = never, C = never, D = unknown, E = unknown>(value: B) => $<U, [A, B, C], [D], [E]>;
}