Link Search Menu Expand Document

IxApply overview

Added in v2.10.0


Table of contents


Combinators

ixapFirst

Signature

export declare function ixapFirst<F extends URIS4>(
  F: IxApply4<F>
): <O, Z, E, B>(second: Kind4<F, O, Z, E, B>) => <I, A>(first: Kind4<F, I, O, E, A>) => Kind4<F, I, Z, E, A>
export declare function ixapFirst<F extends URIS3>(
  F: IxApply3<F>
): <O, Z, B>(second: Kind3<F, O, Z, B>) => <I, A>(first: Kind3<F, I, O, A>) => Kind3<F, I, Z, A>

Added in v2.10.0

ixapS

Signature

export declare function ixapS<F extends URIS4>(
  F: IxApply4<F>
): <N extends string, A, I, O, E, B>(
  name: Exclude<N, keyof A>,
  fb: Kind4<F, I, O, E, B>
) => (fa: Kind4<F, I, O, E, A>) => Kind4<F, I, O, E, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>
export declare function ixapS<F extends URIS3>(
  F: IxApply3<F>
): <N extends string, A, O, S, B>(
  name: Exclude<N, keyof A>,
  fb: Kind3<F, O, S, B>
) => <First, O>(fa: Kind3<F, First, O, A>) => Kind3<F, First, S, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>

Added in v2.10.0

ixapSecond

Signature

export declare function ixapSecond<F extends URIS4>(
  F: IxApply4<F>
): <I, O, Z, E, A, B>(second: Kind4<F, O, Z, E, B>) => (first: Kind4<F, I, O, E, A>) => Kind4<F, I, Z, E, B>
export declare function ixapSecond<F extends URIS3>(
  F: IxApply3<F>
): <I, O, Z, A, B>(second: Kind3<F, O, Z, B>) => (first: Kind3<F, I, O, A>) => Kind3<F, I, Z, B>

Added in v2.10.0

type classes

IxApply3 (interface)

Signature

export interface IxApply3<F extends URIS3> extends IxFunctor3<F> {
  readonly ixap: <O, Z, A>(fa: Kind3<F, O, Z, A>) => <I, B>(fab: Kind3<F, I, O, (a: A) => B>) => Kind3<F, I, Z, B>
}

Added in v2.10.0

IxApply4 (interface)

Signature

export interface IxApply4<F extends URIS4> extends IxFunctor4<F> {
  readonly ixap: <O, Z, E, A>(
    fa: Kind4<F, O, Z, E, A>
  ) => <I, B>(fab: Kind4<F, I, O, E, (a: A) => B>) => Kind4<F, I, Z, E, B>
}

Added in v2.10.0