package preface
Module Preface_make.Profunctor
Building a Preface_specs.Profunctor
Using the minimal definition
Using dimap
Build a Preface_specs.PROFUNCTOR using Preface_specs.Profunctor.WITH_DIMAP.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_dimap
(Req : Preface_specs.Profunctor.WITH_DIMAP) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = ('a, 'b) Req.tUsing contramap_fst and map_snd
Build a Preface_specs.PROFUNCTOR using Preface_specs.Profunctor.WITH_CONTRAMAP_FST_AND_MAP_SND.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_contramap_fst_and_map_snd
(Req : Preface_specs.Profunctor.WITH_CONTRAMAP_FST_AND_MAP_SND) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = ('a, 'b) Req.tProfunctor Algebra
Construction of Preface_specs.PROFUNCTOR by combining them.
Composition
Right-to-left composition of Preface_specs.PROFUNCTOR.
module Composition
(F : Preface_specs.PROFUNCTOR)
(G : Preface_specs.PROFUNCTOR) :
sig ... endFrom other abstraction
From a Functor
Produces a Preface_specs.PROFUNCTOR from a Preface_specs.FUNCTOR.
module From_functor
(Functor : Preface_specs.Functor.CORE) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = 'a -> 'b Functor.tFrom a Strong profunctor
Produces a Preface_specs.PROFUNCTOR from a Preface_specs.STRONG.
module From_strong
(Strong : Preface_specs.STRONG) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = ('a, 'b) Strong.tFrom a Choice profunctor
Produces a Preface_specs.PROFUNCTOR from a Preface_specs.CHOICE.
module From_choice
(Choice : Preface_specs.CHOICE) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = ('a, 'b) Choice.tFrom a Closed profunctor
Produces a Preface_specs.PROFUNCTOR from a Preface_specs.CLOSED.
module From_closed
(Closed : Preface_specs.CLOSED) :
Preface_specs.PROFUNCTOR with type ('a, 'b) t = ('a, 'b) Closed.tManual construction
Advanced way to build a Preface_specs.PROFUNCTOR, constructing and assembling a component-by-component of Preface_specs.PROFUNCTOR. (In order to provide your own implementation for some features.)
Building Core
module Core_via_dimap
(Req : Preface_specs.Profunctor.WITH_DIMAP) :
Preface_specs.Profunctor.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Core_via_contramap_fst_and_map_snd
(Req : Preface_specs.Profunctor.WITH_CONTRAMAP_FST_AND_MAP_SND) :
Preface_specs.Profunctor.CORE with type ('a, 'b) t = ('a, 'b) Req.t