UNPKG

@jsoldi/hkt

Version:

Higher kinded types for typescript and a few utility monads.

13 lines 623 B
import { IMonad } from "../../classes/monad.js"; import { $ } from "../../core/hkt.js"; import { Free, IFunctorFree } from "./functorFree.js"; /** The free monad interface based on a monad. */ export interface IMonadFree<F> extends IFunctorFree<F> { /** The monad underlying the free monad. */ readonly freeBase: IMonad<F>; /** Unwraps the free monad into the underlying monad. Inverse of `IFunctorFree`'s `delay`. */ run<A>(t: Free<A, F>): $<F, A>; } /** Creates a free monad from a monad. */ export declare function monadFree<F>(freeBase: IMonad<F>): IMonadFree<F>; //# sourceMappingURL=monadFree.d.ts.map