@typed/fp
Version:
Data Structures and Resources for fp-ts
83 lines • 1.61 kB
JavaScript
import * as E from 'fp-ts/Either';
import { pipe } from 'fp-ts/function';
import * as SRTE from 'fp-ts/StateReaderTaskEither';
/**
* @since 0.9.2
* @category Combinator
*/
export const chainRec = (f) => (value) => pipe(value, f, SRTE.chain(E.match(chainRec(f), SRTE.of)));
/**
* @since 0.9.2
* @category Instance
*/
export const ChainRec = {
chainRec,
};
/**
* @since 0.9.2
* @category Instance
*/
export const MonadRec = {
...SRTE.Monad,
chainRec,
};
/**
* @since 0.9.2
* @category Combinator
*/
export const useSome = (provided) => (srte) => (s) => (r) => srte(s)({ ...r, ...provided });
/**
* @since 0.9.2
* @category Combinator
*/
export const provideSome = (provided) => (srte) => (s) => (r) => srte(s)({ ...provided, ...r });
/**
* @since 0.9.2
* @category Combinator
*/
export const useAll = (provided) => (srte) => (s) => () => srte(s)(provided);
/**
* @since 0.9.2
* @category Combinator
*/
export const provideAll = (provided) => (srte) => (s) => (r) => srte(s)({ ...provided, ...r });
/**
* @since 0.9.2
* @category Instance
*/
export const UseSome = {
useSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const UseAll = {
useAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideSome = {
provideSome,
};
/**
* @since 0.9.2
* @category Instance
*/
export const ProvideAll = {
provideAll,
};
/**
* @since 0.9.2
* @category Instance
*/
export const Provide = {
useSome,
useAll,
provideSome,
provideAll,
};
export * from 'fp-ts/StateReaderTaskEither';
//# sourceMappingURL=StateReaderTaskEither.js.map