Module Preface_make.Strong

Building a Preface_specs.Strong

Using the minimal definition

Using dimap and fst

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.

Using dimap and snd

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

Using contramap_fst, map_snd and fst

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

Using contramap_fst, map_snd and snd

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

Using fst over a Profunctor

Build 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.t

Using snd over a Profunctor

Build 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.t

Strong Algebra

Construction of Preface_specs.STRONG by combining them.

Composition

Right-to-left composition of Preface_specs.STRONG.

From other abstraction

From a Monad

Produces 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.t

From a Functor

Produces a Preface_specs.STRONG from a Preface_specs.FUNCTOR. (Using Star)

Manual construction

Advanced 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.)

Grouping of all components

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

Building Core

module 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.t
module 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.t

Deriving Operation