Module BatMonad


module BatMonad: sig .. end
Definition of monads.

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 the documentation of pa_monad.
Author(s): David Teller


module type S = sig .. end
Signature for monads