import { FutureResult } from './Result'; export type Fallible = ( ...args: A ) => FutureResult; export function Fallible( callback: (..._arguments: A) => O | PromiseLike ): Fallible { return function Fallible(...args: A) { return new FutureResult(() => callback(...args)); }; } export default Fallible; Object.defineProperties(Fallible, { default: { get: () => Fallible }, Fallible: { get: () => Fallible }, });