Module Preface_make.Monad

Building a Preface_specs.Monad

Using the minimal definition

Using return and bind

Build a Preface_specs.MONAD using Preface_specs.Monad.WITH_RETURN_AND_BIND.

Standard method, using the minimal definition of an alt to derive its full API.

Using return, map and join

Build a Preface_specs.MONAD using Preface_specs.Monad.WITH_RETURN_MAP_AND_JOIN.

Standard method, using the minimal definition of an alt to derive its full API.

Using return and the kleisli composition

Build a Preface_specs.MONAD using Preface_specs.Monad.WITH_RETURN_AND_KLEISLI_COMPOSITION.

Standard method, using the minimal definition of an alt to derive its full API.

Monad Algebra

Construction of Preface_specs.MONAD by combining them.

Product

Construct the product of two Preface_specs.MONAD.

From other abstraction

From a Monad Plus

Produces a Preface_specs.MONAD from a Preface_specs.MONAD_PLUS.

From an Arrow Apply

Produces a Preface_specs.MONAD from an Preface_specs.ARROW_APPLY.

module From_arrow_apply (A : Preface_specs.ARROW_APPLY) : Preface_specs.MONAD with type 'a t = (unit, 'a) A.t

To other abstraction

To an Indexed Monad

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

Manual construction

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

Grouping of all components

Building Core

Deriving Operation

Deriving Syntax

Deriving Infix