Skip to content

Covariant

7 exports Added in v0.24.0 Source

Mapping

as

Added in v0.24.0 Source

Signature

declare function as<F extends TypeLambda>(
  F: Covariant<F>,
): {
  <B>(b: B): <R, O, E, _>(self: Kind<F, R, O, E, _>) => Kind<F, R, O, E, B>;
  <R, O, E, _, B>(self: Kind<F, R, O, E, _>, b: B): Kind<F, R, O, E, B>;
};

asVoid

Added in v0.24.0 Source

Signature

declare function asVoid<F extends TypeLambda>(
  F: Covariant<F>,
): <R, O, E, _>(self: Kind<F, R, O, E, _>) => Kind<F, R, O, E, void>;

flap

Added in v0.24.0 Source

Signature

declare function flap<F extends TypeLambda>(
  F: Covariant<F>,
): {
  <R, O, E, A, B>(self: Kind<F, R, O, E, (a: A) => B>): (a: A) => Kind<F, R, O, E, B>;
  <A, R, O, E, B>(a: A, self: Kind<F, R, O, E, (a: A) => B>): Kind<F, R, O, E, B>;
};

Other

imap

Added in v0.24.0 Source

Returns a default imap implementation.

Signature

declare function imap<F extends TypeLambda>(
  map: <R, O, E, A, B>(self: Kind<F, R, O, E, A>, f: (a: A) => B) => Kind<F, R, O, E, B>,
): {
  <A, B>(
    to: (a: A) => B,
    from: (b: B) => A,
  ): <R, O, E>(self: Kind<F, R, O, E, A>) => Kind<F, R, O, E, B>;
  <R, O, E, A, B>(
    self: Kind<F, R, O, E, A>,
    to: (a: A) => B,
    from: (b: B) => A,
  ): Kind<F, R, O, E, B>;
};

Signature

declare function let<F extends TypeLambda>(
  F: Covariant<F>,
): {
  <N extends string, A extends object, B>(
    name: Exclude<N, keyof A>,
    f: (a: A) => B,
  ): <R, O, E>(
    self: Kind<F, R, O, E, A>,
  ) => Kind<F, R, O, E, { [K in string | number | symbol]: K extends keyof A ? A[K] : B }>;
  <R, O, E, A extends object, N extends string, B>(
    self: Kind<F, R, O, E, A>,
    name: Exclude<N, keyof A>,
    f: (a: A) => B,
  ): Kind<F, R, O, E, { [K in string | number | symbol]: K extends keyof A ? A[K] : B }>;
};

mapComposition

Added in v0.24.0 Source

Returns a default map composition.

Signature

declare function mapComposition<F extends TypeLambda, G extends TypeLambda>(
  F: Covariant<F>,
  G: Covariant<G>,
): <FR, FO, FE, GR, GO, GE, A, B>(
  self: Kind<F, FR, FO, FE, Kind<G, GR, GO, GE, A>>,
  f: (a: A) => B,
) => Kind<F, FR, FO, FE, Kind<G, GR, GO, GE, B>>;

Type Class

Covariant interface

Added in v0.24.0 Source

Signature

interface Covariant<F extends TypeLambda> extends Invariant<F> {
  readonly map: {
    <A, B>(f: (a: A) => B): <R, O, E>(self: Kind<F, R, O, E, A>) => Kind<F, R, O, E, B>;
    <R, O, E, A, B>(self: Kind<F, R, O, E, A>, f: (a: A) => B): Kind<F, R, O, E, B>;
  };
}