Module Preface_make.Functor

Building a Preface_specs.Functor

Using the minimal definition

Build a Preface_specs.FUNCTOR using Preface_specs.Functor.WITH_MAP.

Standard method, using the minimal definition of a functor to derive its full API.

Functor Algebra

Construction of Preface_specs.FUNCTOR by combining two other Preface_specs.FUNCTOR.

Composition

Right-to-left composition of Preface_specs.FUNCTOR.

Product

Construct the product of two Preface_specs.FUNCTOR.

Sum

Sum of Preface_specs.FUNCTOR using the technique described in Data types à la carte by W. Swierstra.

module Sum (F : Preface_specs.FUNCTOR) (G : Preface_specs.FUNCTOR) : sig ... end

From other abstraction

From an Arrow

Specialize an Preface_specs.ARROW into a Preface_specs.FUNCTOR.

module From_arrow (A : Preface_specs.ARROW) : Preface_specs.FUNCTOR with type 'a t = (unit, 'a) A.t

From an Applicative

Specialize an Preface_specs.APPLICATIVE into a Preface_specs.FUNCTOR.

From an Alt

Specialize an Preface_specs.ALT into a Preface_specs.FUNCTOR.

From a Monad

Specialize a Preface_specs.MONAD into a Preface_specs.FUNCTOR.

From an Alternative

Specialize an Preface_specs.ALTERNATIVE into a Preface_specs.FUNCTOR.

From a Monad plus

Specialize a Preface_specs.MONAD_PLUS into a Preface_specs.FUNCTOR.

From a Comonad

Specialize a Preface_specs.COMONAD into a Preface_specs.FUNCTOR.

From a Bifunctor

Specialize a Preface_specs.BIFUNCTOR into a Preface_specs.FUNCTOR using Join.

To other abstraction

To an Indexed Functor

It is possible to Index a functor.

module Index (F : Preface_specs.FUNCTOR) : Preface_specs.INDEXED_FUNCTOR with type ('a, 'index) t = 'a F.t

Manual construction

Advanced way to build a Preface_specs.FUNCTOR, constructing and assembling a component-by-component of Preface_specs.FUNCTOR. (In order to provide your own implementation for some features.)

Grouping of all components

Building Core

Deriving Operation

Deriving Infix

Deriving Syntax