Module Preface_specs.Comonad

A Comonad is the dual of the Monad.

Laws

Minimal definition

module type WITH_MAP_AND_DUPLICATE = sig ... end

Minimal definition using extract, map and duplicate.

module type WITH_EXTEND = sig ... end

Minimal definition using extract and extend.

module type WITH_COKLEISLI_COMPOSITION = sig ... end

Minimal definition using extract and compose_left_to_right.

Structure anatomy

module type CORE = sig ... end

Basis operations.

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 a Comonad.

Additional interfaces

Transformer

A standard representation of a comonad transformer. (It is likely that not all transformers respect this interface)

module type TRANSFORMER = sig ... end