A monad is an abstraction of the concept of sequencing of computations. A value of
type 'a monad
represents a computation that returns a value of type 'a
.
module type Basic = Base__.Monad_intf.Basic
module type Basic2 = Base__.Monad_intf.Basic2
module type Basic3 = Base__.Monad_intf.Basic3
module type Basic_indexed = Base__.Monad_intf.Basic_indexed
module type Infix = Base__.Monad_intf.Infix
module type Infix2 = Base__.Monad_intf.Infix2
module type Infix3 = Base__.Monad_intf.Infix3
module type Infix_indexed = Base__.Monad_intf.Infix_indexed
module type Syntax = Base__.Monad_intf.Syntax
module type Syntax2 = Base__.Monad_intf.Syntax2
module type Syntax3 = Base__.Monad_intf.Syntax3
module type Syntax_indexed = Base__.Monad_intf.Syntax_indexed
module type S_without_syntax = Base__.Monad_intf.S_without_syntax
module type S = Base__.Monad_intf.S
module type S2 = Base__.Monad_intf.S2
module type S3 = Base__.Monad_intf.S3
module type S_indexed = Base__.Monad_intf.S_indexed
module Make_indexed : functor (X : Basic_indexed) -> S_indexed with type (a, d, e) t := (a, d, e) X.t