Preface_specs.Indexed_monadAn Indexed Monad allow to sequences operations that are dependent from one to another, in contrast to Indexed_applicative, which executes a series of independent actions.
module type WITH_RETURN = sig ... endMinimal interface using map and product.
module type WITH_RETURN_AND_BIND = sig ... endMinimal definition using return and bind.
module type WITH_RETURN_MAP_AND_JOIN = sig ... endMinimal definition using return, map and join.
module type WITH_RETURN_AND_KLEISLI_COMPOSITION = sig ... endMinimal definition using return and compose_left_to_right.
module type CORE = sig ... endBasis operations.
module type OPERATION = sig ... endAdditional operations.
module type SYNTAX = sig ... endSyntax extensions.
module type INFIX = sig ... endInfix operators.
module type API = sig ... endThe complete interface of a Indexed Monad.