Module 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.

Bifunctor from a Contravariant

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

Profunctor from a Functor

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

Strong from a Comonad

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

Closed from a Functor

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

Category from a Comonad

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

Arrow from a Comonad

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