package profunctor

  1. Overview
  2. Docs

A profunctor has an input end with contravariant map, an output end with covariant map and an operation to join two terms with the same input type giving both outputs.

type ('b, 'a) t
val map : ('a, 'u) t -> f:('a -> 'b) -> ('b, 'u) t
val contra_map : ('u, 'b) t -> f:('a -> 'b) -> ('u, 'a) t
val both : ('a, 'i) t -> ('b, 'i) t -> ('a * 'b, 'i) t