Module type Comonad.CORE

Basis operations.

type 'a t

The type held by the Comonad.

val duplicate : 'a t -> 'a t t

Dual of join.

val map : ('a -> 'b) -> 'a t -> 'b t

Mapping over t from 'a to 'b.

val extend : ('a t -> 'b) -> 'a t -> 'b t

Dual of bind.

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).