Preface_make.StrongBuilding a Preface_specs.Strong
Build a Preface_specs.STRONG using Preface_specs.Strong.WITH_DIMAP_AND_FST.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_dimap_and_fst
(Req : Preface_specs.Strong.WITH_DIMAP_AND_FST) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) Req.tBuild a Preface_specs.STRONG using Preface_specs.Strong.WITH_DIMAP_AND_SND.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_dimap_and_snd
(Req : Preface_specs.Strong.WITH_DIMAP_AND_SND) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) Req.tBuild a Preface_specs.STRONG using Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_FST.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_contramap_fst_and_map_snd_and_fst
(Req : Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_FST) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) Req.tBuild a Preface_specs.STRONG using Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_SND.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_contramap_fst_and_map_snd_and_snd
(Req : Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_SND) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) Req.tBuild a Preface_specs.STRONG over a Preface_specs.PROFUNCTOR using Preface_specs.Strong.WITH_FST.
Standard method, using the minimal definition of an alt to derive its full API.
module Over_profunctor_via_fst
(P : Preface_specs.PROFUNCTOR)
(F : Preface_specs.Strong.WITH_FST with type ('a, 'b) t = ('a, 'b) P.t) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) F.tBuild a Preface_specs.STRONG over a Preface_specs.PROFUNCTOR using Preface_specs.Strong.WITH_SND.
Standard method, using the minimal definition of an alt to derive its full API.
module Over_profunctor_via_snd
(P : Preface_specs.PROFUNCTOR)
(S : Preface_specs.Strong.WITH_SND with type ('a, 'b) t = ('a, 'b) P.t) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) S.tConstruction of Preface_specs.STRONG by combining them.
Right-to-left composition of Preface_specs.STRONG.
module Composition
(F : Preface_specs.STRONG)
(G : Preface_specs.STRONG) :
sig ... endProduces a Preface_specs.STRONG from a Preface_specs.MONAD. (Using Star)
module From_monad
(Monad : Preface_specs.Monad.CORE) :
Preface_specs.STRONG with type ('a, 'b) t = 'a -> 'b Monad.tProduces a Preface_specs.STRONG from a Preface_specs.FUNCTOR. (Using Star)
module From_functor
(Functor : Preface_specs.Functor.CORE) :
Preface_specs.STRONG with type ('a, 'b) t = 'a -> 'b Functor.tAdvanced way to build a Preface_specs.STRONG, constructing and assembling a component-by-component of Preface_specs.STRONG. (In order to provide your own implementation for some features.)
module Via
(Core : Preface_specs.Strong.CORE)
(Operation :
Preface_specs.Strong.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t) :
Preface_specs.STRONG with type ('a, 'b) t = ('a, 'b) Operation.tmodule Core_over_profunctor_via_fst
(P : Preface_specs.Profunctor.CORE)
(F : Preface_specs.Strong.WITH_FST with type ('a, 'b) t = ('a, 'b) P.t) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) F.tmodule Core_over_profunctor_via_snd
(P : Preface_specs.Profunctor.CORE)
(S : Preface_specs.Strong.WITH_SND with type ('a, 'b) t = ('a, 'b) P.t) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) S.tmodule Core_via_dimap_and_fst
(Req : Preface_specs.Strong.WITH_DIMAP_AND_FST) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Core_via_dimap_and_snd
(Req : Preface_specs.Strong.WITH_DIMAP_AND_SND) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Core_via_contramap_fst_and_map_snd_and_fst
(Req : Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_FST) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Core_via_contramap_fst_and_map_snd_and_snd
(Req : Preface_specs.Strong.WITH_CONTRAMAP_FST_AND_MAP_SND_AND_SND) :
Preface_specs.Strong.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Operation
(Core : Preface_specs.Strong.CORE) :
Preface_specs.Strong.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t