Module type Indexed_monad.WITH_RETURN_AND_KLEISLI_COMPOSITION

Minimal definition using return and compose_left_to_right.

type ('a, 'index) t

The type held by the Indexed Monad.

include WITH_RETURN with type ('a, 'index) t := ('a, 'index) t
val return : 'a -> ('a, 'index) t

Lift a value into a t.

include Indexed_bind.WITH_KLEISLI_COMPOSITION with type ('a, 'index) t := ('a, 'index) t
val compose_left_to_right : ('a -> ('b, 'index) t) -> ('b -> ('c, 'index) t) -> 'a -> ('c, 'index) t

Composing monadic functions using Kleisli Arrow (from left to right).