Common signatures for data structures.
module type Mappable =
A signature for data structures which have a
map : ('a -> 'b) -> ('a t -> 'b t) operation.
module type OrderedType =
Monads are a design pattern which may be used to enforce strong
functional or non-functional constraints on the manipulation of
resources, while remaining in the world of functional programming.
For instance, monads may serve to implement approximations of a
types-and-effects type system, to enforce functional use of arrays
or other mutable data structures, or to enforce the fact that only
files opened for writing may be actually used for writing.
For more information on monads, see
A Monad Tutorial for Ocaml.
This definition is compatible with the standard syntax extension
for monads. For more information, see
documentation of pa_monad.
module type Monad =
Signature for monads