Preface_make.Cokleisli
Cokleisli
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 -> 'b
Produces 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 -> 'b
Produces 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 -> 'b
Produces 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 -> 'b
Produces 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 -> 'b
Produces 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