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

HKT overview

Added in v2.0.0


Table of contents


utils

Kind (type alias)

Signature

export type Kind<F extends TypeLambda, In, Out2, Out1, Target> = F extends {
  readonly type: unknown
}
  ? (F & {
      readonly In: In
      readonly Out2: Out2
      readonly Out1: Out1
      readonly Target: Target
    })["type"]
  : {
      readonly F: F
      readonly In: Types.Contravariant<In>
      readonly Out2: Types.Covariant<Out2>
      readonly Out1: Types.Covariant<Out1>
      readonly Target: Types.Invariant<Target>
    }

Added in v2.0.0

TypeClass (interface)

Signature

export interface TypeClass<F extends TypeLambda> {
  readonly [URI]?: F
}

Added in v2.0.0

TypeLambda (interface)

Signature

export interface TypeLambda {
  readonly In: unknown
  readonly Out2: unknown
  readonly Out1: unknown
  readonly Target: unknown
}

Added in v2.0.0