Preface_make.Category
Building a Preface_specs.Category
Build a Preface_specs.CATEGORY
using Preface_specs.Category.WITH_ID_AND_COMPOSE
.
Standard method, using the minimal definition of an alt to derive its full API.
module Via_id_and_compose
(Req : Preface_specs.Category.WITH_ID_AND_COMPOSE) :
Preface_specs.CATEGORY with type ('a, 'b) t = ('a, 'b) Req.t
Build a Preface_specs.CATEGORY
over Preface_specs.Semigroupoid.CORE
using Preface_specs.Category.WITH_ID
.
Standard method, using the minimal definition of an alt to derive its full API.
module Over_semigroupoid
(G : Preface_specs.Semigroupoid.CORE)
(Req : Preface_specs.Category.WITH_ID with type ('a, 'b) t = ('a, 'b) G.t) :
Preface_specs.CATEGORY with type ('a, 'b) t = ('a, 'b) Req.t
Construction of Preface_specs.CATEGORY
by combining them.
Construct the product of two Preface_specs.CATEGORY
.
module Product
(F : Preface_specs.CATEGORY)
(G : Preface_specs.CATEGORY) :
Preface_specs.CATEGORY with type ('a, 'b) t = ('a, 'b) F.t * ('a, 'b) G.t
Produces a Preface_specs.CATEGORY
from a Preface_specs.MONAD
.
module From_monad
(Monad : Preface_specs.Monad.CORE) :
Preface_specs.CATEGORY with type ('a, 'b) t = 'a -> 'b Monad.t
Advanced way to build a Preface_specs.CATEGORY
, constructing and assembling a component-by-component of Preface_specs.CATEGORY
. (In order to provide your own implementation for some features.)
module Via
(Core : Preface_specs.Category.CORE)
(Operation :
Preface_specs.Category.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t)
(Infix :
Preface_specs.Category.INFIX with type ('a, 'b) t = ('a, 'b) Operation.t) :
Preface_specs.CATEGORY with type ('a, 'b) t = ('a, 'b) Infix.t
module Core
(Req : Preface_specs.Category.WITH_ID_AND_COMPOSE) :
Preface_specs.Category.CORE with type ('a, 'b) t = ('a, 'b) Req.t
module Operation
(Core : Preface_specs.Category.CORE) :
Preface_specs.Category.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t
module Infix
(Core : Preface_specs.Category.CORE) :
Preface_specs.Category.INFIX with type ('a, 'b) t = ('a, 'b) Core.t