UNPKG

effect-ts-folds

Version:
9 lines 567 B
import { fix } from '#fix'; import { fanin, succeedBy, traverseSuspended } from '#util'; import { Effect as EF, flow, pipe } from 'effect'; import { hylo, hyloE } from '../refold/schemes.js'; export const anaE = F => ψ => hyloE(F)(ψ, flow(fix, EF.succeed)); export const apoE = F => ψ => a => pipe(a, ψ, EF.flatMap(traverseSuspended(F)(eif => pipe(eif, fanin(EF.succeed, apoE(F)(ψ))))), EF.map(fix)); export const ana = F => ψ => hylo(F)(ψ, fix); export const apo = F => ψ => flow(pipe(ψ, succeedBy, apoE(F)), EF.runSync); //# sourceMappingURL=schemes.js.map