Preface_make.JokerJoker can produces Bifunctor or Profunctor using a Functor on the second argument of the Bi/Profunctor as described in Clowns to the Left, Jokers to the Right (Functional Pearl)
Produces a Preface_specs.BIFUNCTOR using a Preface_specs.FUNCTOR as second argument.
module To_bifunctor
(F : Preface_specs.Functor.CORE) :
Preface_specs.BIFUNCTOR with type ('a, 'b) t = 'b F.tProduces a Preface_specs.PROFUNCTOR using a Preface_specs.CONTRAVARIANT as second argument.
module To_profunctor
(F : Preface_specs.Functor.CORE) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = 'b F.t