Link Search Menu Expand Document

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