IxFunctor overview
Added in v2.10.0
Table of contents
combinators
ixflap
Signature
export declare function ixflap<F extends URIS4>(
F: IxFunctor4<F>
): <A>(a: A) => <I, O, E, B>(fab: Kind4<F, I, O, E, (a: A) => B>) => Kind4<F, I, O, E, B>
export declare function ixflap<F extends URIS3>(
F: IxFunctor3<F>
): <A>(a: A) => <I, O, B>(fab: Kind3<F, I, O, (a: A) => B>) => Kind3<F, I, O, B>
Added in v2.10.0
type classes
IxFunctor3 (interface)
Signature
export interface IxFunctor3<F extends URIS3> {
readonly URI: F
readonly ixmap: <A, B>(f: (a: A) => B) => <I, O>(fa: Kind3<F, I, O, A>) => Kind3<F, I, O, B>
}
Added in v2.10.0
IxFunctor4 (interface)
Signature
export interface IxFunctor4<F extends URIS4> {
readonly URI: F
readonly ixmap: <A, B>(f: (a: A) => B) => <I, O, E>(fa: Kind4<F, I, O, E, A>) => Kind4<F, I, O, E, B>
}
Added in v2.10.0
utils
ixbindTo
Signature
export declare function ixbindTo<F extends URIS4>(
F: IxFunctor4<F>
): <N extends string>(name: N) => <I, O, E, A>(fa: Kind4<F, I, O, E, A>) => Kind4<F, I, O, E, { [K in N]: A }>
export declare function ixbindTo<F extends URIS3>(
F: IxFunctor3<F>
): <N extends string>(name: N) => <I, O, A>(fa: Kind3<F, I, O, A>) => Kind3<F, I, O, { [K in N]: A }>
Added in v2.10.0
ixlet
Signature
export declare function ixlet<M extends URIS4>(
M: IxFunctor4<M>
): <N extends string, A, B>(
name: Exclude<N, keyof A>,
val: (a: A) => B
) => <I, O, E>(ma: Kind4<M, I, O, E, A>) => Kind4<M, I, O, E, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>
export declare function ixlet<M extends URIS3>(
M: IxFunctor3<M>
): <N extends string, A, B>(
name: Exclude<N, keyof A>,
val: (a: A) => B
) => <I, O>(ma: Kind3<M, I, O, A>) => Kind3<M, I, O, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>
Added in v2.10.2