@jsoldi/hkt
Version:
Higher kinded types for typescript and a few utility monads.
25 lines • 1.04 kB
JavaScript
import { monad } from "../../classes/monad.js";
import { memo } from "../../core/utils.js";
import { free } from "../free/free.js";
import { contCore } from "./contCore.js";
import { contFunctorFree } from "./contFunctorFree.js";
import { contMonad } from "./contMonad.js";
import { contMonadFree } from "./contMonadFree.js";
import { contVoid } from "./contVoid.js";
/** The continuation factory. */
export const cont = (() => {
const getTrivial = memo(() => contMonad(monad.trivial));
const getTrampoline = memo(() => contMonadFree(free.trampoline));
const getTrampolineAsync = memo(() => contMonadFree(free.trampolineAsync));
return {
get trivial() { return getTrivial(); },
get void() { return contVoid; },
get trampoline() { return getTrampoline(); },
get trampolineAsync() { return getTrampolineAsync(); },
ofType: contCore,
ofMonad: contMonad,
ofFunctorFree: contFunctorFree,
ofMonadFree: contMonadFree,
};
})();
//# sourceMappingURL=cont.js.map