Preface_make.SemigroupoidBuilding a Preface_specs.Semigroupoid
Build a Preface_specs.SEMIGROUPOID using Preface_specs.Semigroupoid.WITH_COMPOSE.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_compose
(Req : Preface_specs.Semigroupoid.WITH_COMPOSE) :
Preface_specs.SEMIGROUPOID with type ('a, 'b) t = ('a, 'b) Req.tConstruction of Preface_specs.SEMIGROUPOID by combining them.
Construct the product of two Preface_specs.SEMIGROUPOID.
module Product
(F : Preface_specs.SEMIGROUPOID)
(G : Preface_specs.SEMIGROUPOID) :
Preface_specs.SEMIGROUPOID with type ('a, 'b) t = ('a, 'b) F.t * ('a, 'b) G.tProduces a Preface_specs.SEMIGROUPOID from a Preface_specs.MONAD.
module From_monad
(Monad : Preface_specs.Monad.CORE) :
Preface_specs.SEMIGROUPOID with type ('a, 'b) t = 'a -> 'b Monad.tAdvanced way to build a Preface_specs.SEMIGROUPOID, constructing and assembling a component-by-component of Preface_specs.SEMIGROUPOID. (In order to provide your own implementation for some features.)
module Via
(Core : Preface_specs.Semigroupoid.CORE)
(Operation :
Preface_specs.Semigroupoid.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t)
(Infix :
Preface_specs.Semigroupoid.INFIX
with type ('a, 'b) t = ('a, 'b) Operation.t) :
Preface_specs.SEMIGROUPOID with type ('a, 'b) t = ('a, 'b) Infix.tmodule Core
(Req : Preface_specs.Semigroupoid.WITH_COMPOSE) :
Preface_specs.Semigroupoid.CORE with type ('a, 'b) t = ('a, 'b) Req.tmodule Operation
(Core : Preface_specs.Semigroupoid.CORE) :
Preface_specs.Semigroupoid.OPERATION with type ('a, 'b) t = ('a, 'b) Core.tmodule Infix
(Core : Preface_specs.Semigroupoid.CORE) :
Preface_specs.Semigroupoid.INFIX with type ('a, 'b) t = ('a, 'b) Core.t