Preface_make.CokleisliCokleisli uses the Cokleisli category to describe arity 2 constructions for arity 1 constructions, usually using the form: type ('a, 'b) t = 'a F.t -> 'b.
Produces a Preface_specs.BIFUNCTOR from a Preface_specs.Contravariant.
module Bifunctor
(C : Preface_specs.Contravariant.CORE) :
Preface_specs.BIFUNCTOR with type ('a, 'b) t = 'a C.t -> 'bProduces a Preface_specs.PROFUNCTOR from a Preface_specs.FUNCTOR.
module Profunctor
(F : Preface_specs.Functor.CORE) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = 'a F.t -> 'bProduces a Preface_specs.STRONG from a Preface_specs.COMONAD.
module Strong
(C : Preface_specs.Comonad.CORE) :
Preface_specs.STRONG with type ('a, 'b) t = 'a C.t -> 'bProduces a Preface_specs.CLOSED from a Preface_specs.FUNCTOR.
module Closed
(F : Preface_specs.Functor.CORE) :
Preface_specs.CLOSED with type ('a, 'b) t = 'a F.t -> 'bProduces a Preface_specs.CATEGORY from a Preface_specs.COMONAD.
module Category
(C : Preface_specs.Comonad.CORE) :
Preface_specs.CATEGORY with type ('a, 'b) t = 'a C.t -> 'bProduces a Preface_specs.ARROW from a Preface_specs.COMONAD.
module Arrow
(C : Preface_specs.Comonad.CORE) :
Preface_specs.ARROW with type ('a, 'b) t = 'a C.t -> 'b