ChainRec overview
Utilities for working with ChainRec
instances.
Added in v1.0.0
Table of contents
Utils
chainRec2
Signature
export declare function chainRec2<M extends hkt.URIS4>(
M: ChnRec.ChainRec4<M>
): <S, R, E, A, B, C>(
a: A,
b: B,
f: (a: A, b: B) => hkt.Kind4<M, S, R, E, E.Either<[A, B], C>>
) => hkt.Kind4<M, S, R, E, C>
export declare function chainRec2<M extends hkt.URIS3>(
M: ChnRec.ChainRec3<M>
): <R, E, A, B, C>(a: A, b: B, f: (a: A, b: B) => hkt.Kind3<M, R, E, E.Either<[A, B], C>>) => hkt.Kind3<M, R, E, C>
export declare function chainRec2<M extends hkt.URIS3, E>(
M: ChnRec.ChainRec3C<M, E>
): <R, A, B, C>(a: A, b: B, f: (a: A, b: B) => hkt.Kind3<M, R, E, E.Either<[A, B], C>>) => hkt.Kind3<M, R, E, C>
export declare function chainRec2<M extends hkt.URIS2>(
M: ChnRec.ChainRec2<M>
): <E, A, B, C>(a: A, b: B, f: (a: A, b: B) => hkt.Kind2<M, E, E.Either<[A, B], C>>) => hkt.Kind2<M, E, C>
export declare function chainRec2<M extends hkt.URIS2, E>(
M: ChnRec.ChainRec2C<M, E>
): <A, B, C>(a: A, b: B, f: (a: A, b: B) => hkt.Kind2<M, E, E.Either<[A, B], C>>) => hkt.Kind2<M, E, C>
export declare function chainRec2<M extends hkt.URIS>(
M: ChnRec.ChainRec1<M>
): <A, B, C>(a: A, b: B, f: (a: A, b: B) => hkt.Kind<M, E.Either<[A, B], C>>) => hkt.Kind<M, C>
Added in v1.0.0
chainRec3
Signature
export declare function chainRec3<M extends hkt.URIS4>(
M: ChnRec.ChainRec4<M>
): <S, R, E, A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => hkt.Kind4<M, S, R, E, E.Either<[A, B, C], D>>
) => hkt.Kind4<M, S, R, E, D>
export declare function chainRec3<M extends hkt.URIS3>(
M: ChnRec.ChainRec3<M>
): <R, E, A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => hkt.Kind3<M, R, E, E.Either<[A, B, C], D>>
) => hkt.Kind3<M, R, E, D>
export declare function chainRec3<M extends hkt.URIS3, E>(
M: ChnRec.ChainRec3C<M, E>
): <R, A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => hkt.Kind3<M, R, E, E.Either<[A, B, C], D>>
) => hkt.Kind3<M, R, E, D>
export declare function chainRec3<M extends hkt.URIS2>(
M: ChnRec.ChainRec2<M>
): <E, A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => hkt.Kind2<M, E, E.Either<[A, B, C], D>>
) => hkt.Kind2<M, E, D>
export declare function chainRec3<M extends hkt.URIS2, E>(
M: ChnRec.ChainRec2C<M, E>
): <A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => hkt.Kind2<M, E, E.Either<[A, B, C], D>>
) => hkt.Kind2<M, E, D>
export declare function chainRec3<M extends hkt.URIS>(
M: ChnRec.ChainRec1<M>
): <A, B, C, D>(a: A, b: B, c: C, f: (a: A, b: B, c: C) => hkt.Kind<M, E.Either<[A, B, C], D>>) => hkt.Kind<M, D>
Added in v1.0.0
forever
Signature
export declare function forever<M extends hkt.URIS4>(
M: ChnRec.ChainRec4<M>
): <S, R, E, A, B>(ma: hkt.Kind4<M, S, R, E, A>) => hkt.Kind4<M, S, R, E, B>
export declare function forever<M extends hkt.URIS3>(
M: ChnRec.ChainRec3<M>
): <R, E, A, B>(ma: hkt.Kind3<M, R, E, A>) => hkt.Kind3<M, R, E, B>
export declare function forever<M extends hkt.URIS3, E>(
M: ChnRec.ChainRec3C<M, E>
): <R, A, B>(ma: hkt.Kind3<M, R, E, A>) => hkt.Kind3<M, R, E, B>
export declare function forever<M extends hkt.URIS2>(
M: ChnRec.ChainRec2<M>
): <E, A, B>(ma: hkt.Kind2<M, E, A>) => hkt.Kind2<M, E, B>
export declare function forever<M extends hkt.URIS2, E>(
M: ChnRec.ChainRec2C<M, E>
): <A, B>(ma: hkt.Kind2<M, E, A>) => hkt.Kind2<M, E, B>
export declare function forever<M extends hkt.URIS>(
M: ChnRec.ChainRec1<M>
): <A, B>(ma: hkt.Kind<M, A>) => hkt.Kind<M, B>
Added in v1.0.0
tailRec2
Signature
export declare const tailRec2: <A, B, C>(a: A, b: B, f: (a: A, b: B) => E.Either<readonly [A, B], C>) => C
Added in v1.0.0
tailRec3
Signature
export declare const tailRec3: <A, B, C, D>(
a: A,
b: B,
c: C,
f: (a: A, b: B, c: C) => E.Either<readonly [A, B, C], D>
) => D
Added in v1.0.0
untilSome
Signature
export declare function untilSome<M extends hkt.URIS4>(
M: ChnRec.ChainRec4<M>
): <S, R, E, A>(ma: hkt.Kind4<M, S, R, E, O.Option<A>>) => hkt.Kind4<M, S, R, E, A>
export declare function untilSome<M extends hkt.URIS3>(
M: ChnRec.ChainRec3<M>
): <R, E, A>(ma: hkt.Kind3<M, R, E, O.Option<A>>) => hkt.Kind3<M, R, E, A>
export declare function untilSome<M extends hkt.URIS3, E>(
M: ChnRec.ChainRec3C<M, E>
): <R, A>(ma: hkt.Kind3<M, R, E, O.Option<A>>) => hkt.Kind3<M, R, E, A>
export declare function untilSome<M extends hkt.URIS2>(
M: ChnRec.ChainRec2<M>
): <E, A>(ma: hkt.Kind2<M, E, O.Option<A>>) => hkt.Kind2<M, E, A>
export declare function untilSome<M extends hkt.URIS2, E>(
M: ChnRec.ChainRec2C<M, E>
): <A>(ma: hkt.Kind2<M, E, O.Option<A>>) => hkt.Kind2<M, E, A>
export declare function untilSome<M extends hkt.URIS>(
M: ChnRec.ChainRec1<M>
): <A>(ma: hkt.Kind<M, O.Option<A>>) => hkt.Kind<M, A>
Added in v1.0.0
whileSome
Signature
export declare function whileSome<M extends hkt.URIS4, A>(
M: ChnRec.ChainRec4<M>,
Mn: Mn.Monoid<A>
): <S, R, E>(ma: hkt.Kind4<M, S, R, E, O.Option<A>>) => hkt.Kind4<M, S, R, E, A>
export declare function whileSome<M extends hkt.URIS3, A>(
M: ChnRec.ChainRec3<M>,
Mn: Mn.Monoid<A>
): <R, E>(ma: hkt.Kind3<M, R, E, O.Option<A>>) => hkt.Kind3<M, R, E, A>
export declare function whileSome<M extends hkt.URIS3, E, A>(
M: ChnRec.ChainRec3C<M, E>,
Mn: Mn.Monoid<A>
): <R>(ma: hkt.Kind3<M, R, E, O.Option<A>>) => hkt.Kind3<M, R, E, A>
export declare function whileSome<M extends hkt.URIS2, A>(
M: ChnRec.ChainRec2<M>,
Mn: Mn.Monoid<A>
): <E>(ma: hkt.Kind2<M, E, O.Option<A>>) => hkt.Kind2<M, E, A>
export declare function whileSome<M extends hkt.URIS2, E, A>(
M: ChnRec.ChainRec2C<M, E>,
Mn: Mn.Monoid<A>
): (ma: hkt.Kind2<M, E, O.Option<A>>) => hkt.Kind2<M, E, A>
export declare function whileSome<M extends hkt.URIS, A>(
M: ChnRec.ChainRec1<M>,
Mn: Mn.Monoid<A>
): (ma: hkt.Kind<M, O.Option<A>>) => hkt.Kind<M, A>
Added in v1.0.0