package preface
Module Preface_make.Traced
Building a Preface_specs.Traced, a Traced transformer.
Using the minimal definition
Build an Preface_specs.TRACED over an Inner Preface_specs.COMONAD.
module Over_comonad
(C : Preface_specs.COMONAD)
(Tape : Preface_specs.MONOID) :
Preface_specs.TRACED with type tape = Tape.t and type 'a comonad = 'a C.tImproving API
If there are complementary implementations to Preface_specs.COMONAD attached to the Inner Preface_specs.COMONAD type, it is possible to promote the Preface_specs.TRACED API with these complementary implementations
Functor
If the Inner Preface_specs.COMONAD is also a Preface_specs.FUNCTOR, the Traced comonad is also a Preface_specs.FUNCTOR.
module Functor
(F : Preface_specs.FUNCTOR)
(Tape : Preface_specs.MONOID) :
Preface_specs.FUNCTOR with type 'a t = (Tape.t -> 'a) F.tComonad
If the Inner Preface_specs.COMONAD is also a Preface_specs.COMONAD, the Traced comonad is also a Preface_specs.COMONAD (this is this functor which is used in the full API definition).
module Comonad
(C : Preface_specs.COMONAD)
(Tape : Preface_specs.MONOID) :
Preface_specs.COMONAD with type 'a t = (Tape.t -> 'a) C.tManual construction
Advanced way to build an Preface_specs.TRACED, constructing and assembling a component-by-component of Preface_specs.TRACED. (In order to provide your own implementation for some features.)
Building Core
module Core_over_comonad
(C : Preface_specs.COMONAD)
(Tape : Preface_specs.MONOID) :
Preface_specs.Traced.CORE
with type tape = Tape.t
and type 'a comonad = 'a C.t