Module Preface_make.Arrow_choice

Building a Preface_specs.Arrow_choice

Using the minimal definition

Using left over an Arrow

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_LEFT over an Preface_specs.ARROW.

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

module Over_arrow_with_left (Arrow : Preface_specs.ARROW) (Left : Preface_specs.Arrow_choice.WITH_LEFT with type ('a, 'b) t = ('a, 'b) Arrow.t) : Preface_specs.ARROW_CHOICE with type ('a, 'b) t = ('a, 'b) Left.t

Using choose over an Arrow

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_CHOOSE over an Preface_specs.ARROW.

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

Using left and choose over an Arrow

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_LEFT_AND_CHOOSE over an Preface_specs.ARROW.

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

Using left, arrow and fst over a Category

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_ARROW_AND_FST_AND_LEFT over a Preface_specs.CATEGORY.

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

Using choose, arrow and fst over a Category

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_ARROW_AND_FST_AND_CHOOSE over a Preface_specs.CATEGORY.

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

Using left, arrow and split over a Category

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_ARROW_AND_SPLIT_AND_LEFT over a Preface_specs.CATEGORY.

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

Using choose, arrow and split over a Category

Build an Preface_specs.ARROW_CHOICE using Preface_specs.Arrow_choice.WITH_ARROW_AND_SPLIT_AND_CHOOSE over a Preface_specs.CATEGORY.

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

Arrow Choice Algebra

Construction of Preface_specs.ARROW_CHOICE by combining them.

Product

Construct the product of two Preface_specs.ARROW_CHOICE.

module Product (F : Preface_specs.ARROW_CHOICE) (G : Preface_specs.ARROW_CHOICE) : Preface_specs.ARROW_CHOICE with type ('a, 'b) t = ('a, 'b) F.t * ('a, 'b) G.t

From other abstraction

From a Monad

Produces an Preface_specs.ARROW_CHOICE from a Preface_specs.MONAD (using the Kleisli Arrow).

Manual construction

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

Grouping of all components

module Via (Core : Preface_specs.Arrow_choice.CORE) (Operation : Preface_specs.Arrow_choice.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t) (Alias : Preface_specs.Arrow_choice.ALIAS with type ('a, 'b) t = ('a, 'b) Operation.t) (Infix : Preface_specs.Arrow_choice.INFIX with type ('a, 'b) t = ('a, 'b) Alias.t) : Preface_specs.ARROW_CHOICE with type ('a, 'b) t = ('a, 'b) Infix.t

Building Core

Deriving Operation

Deriving Alias

Deriving Infix