Module Preface_specs.Indexed_selective

An Indexed Selective (applicative functor) allows to declare effects statically and select which execute dynamically. It is an algebraic structure between Indexed_applicative and Indexed_monad. An Indexed_selective is also an Indexed_applicative.

Minimal definition

module type WITH_SELECT = sig ... end

Minimal definition using select without Indexed_applicative requirements.

module type WITH_BRANCH = sig ... end

Minimal definition using branch without Applicative requirements.

module type WITH_PURE_AND_SELECT = sig ... end

Standard requirement including pure and select.

module type WITH_PURE_AND_BRANCH = sig ... end

Standard requirement including pure and branch.

Structure anatomy

module type CORE = sig ... end

Basis operation.

module type OPERATION = sig ... end

Additional operations.

module type SYNTAX = sig ... end

Syntax extensions.

module type INFIX = sig ... end

Infix operators.

Complete API

module type API = sig ... end

The complete interface of an Index Selective.