Preface_make.Contravariant
Building a Preface_specs.Contravariant
Build a Preface_specs.CONTRAVARIANT
using Preface_specs.Contravariant.WITH_CONTRAMAP
.
Standard method, using the minimal definition of a contravariant functor to derive its full API.
module Via_contramap
(Req : Preface_specs.Contravariant.WITH_CONTRAMAP) :
Preface_specs.CONTRAVARIANT with type 'a t = 'a Req.t
Construction of Preface_specs.CONTRAVARIANT
by combining them.
Construction of Preface_specs.CONTRAVARIANT
by left-to-right composition with Preface_specs.FUNCTOR
.
module Composition
(F : Preface_specs.FUNCTOR)
(G : Preface_specs.CONTRAVARIANT) :
Preface_specs.CONTRAVARIANT with type 'a t = 'a G.t F.t
Advanced way to build a Preface_specs.CONTRAVARIANT
, constructing and assembling a component-by-component of Preface_specs.CONTRAVARIANT
. (In order to provide your own implementation for some features.)
module Via
(Core : Preface_specs.Contravariant.CORE)
(Operation :
Preface_specs.Contravariant.OPERATION with type 'a t = 'a Core.t)
(Infix : Preface_specs.Contravariant.INFIX with type 'a t = 'a Operation.t) :
Preface_specs.CONTRAVARIANT with type 'a t = 'a Infix.t
module Core
(Req : Preface_specs.Contravariant.WITH_CONTRAMAP) :
Preface_specs.Contravariant.CORE with type 'a t = 'a Req.t
module Operation
(Core : Preface_specs.Contravariant.CORE) :
Preface_specs.Contravariant.OPERATION with type 'a t = 'a Core.t
module Infix
(Core : Preface_specs.Contravariant.CORE)
(Operation :
Preface_specs.Contravariant.OPERATION with type 'a t = 'a Core.t) :
Preface_specs.Contravariant.INFIX with type 'a t = 'a Operation.t