Skip to main content Link Search Menu Expand Document (external link)

Contravariant.ts overview

Since v0.24.0


Exports Grouped by Category


type class

Contravariant (interface)

Signature

export interface Contravariant<F extends TypeLambda> extends Invariant<F> {
  readonly contramap: {
    <B, A>(f: (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>, f: (b: B) => A): Kind<F, R, O, E, B>
  }
}

Source

Since v0.24.0

utils

contramapComposition

Composing two contravariant functors yields a Covariant functor.

Returns a default binary map composition.

Signature

declare const contramapComposition: <F extends TypeLambda, G extends TypeLambda>(
  F: Contravariant<F>,
  G: Contravariant<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>>

Source

Since v0.24.0

imap

Returns a default imap implementation.

Signature

declare const imap: <F extends TypeLambda>(
  contramap: <R, O, E, A, B>(self: Kind<F, R, O, E, A>, f: (b: B) => A) => Kind<F, R, O, E, B>
) => Invariant<F>["imap"]

Source

Since v0.24.0