Module type Comonad.WITH_COKLEISLI_COMPOSITION

Minimal definition using extract and compose_left_to_right.

type 'a t

The type held by the Comonad.

val extract : 'a t -> 'a

Extract a 'a from t. Dual of return.

val compose_left_to_right : ('a t -> 'b) -> ('b t -> 'c) -> 'a t -> 'c

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