Base.MonadA 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 = sig ... endmodule type Basic2 = sig ... endmodule type Basic3 = sig ... endmodule type Basic_indexed = sig ... endmodule type Infix = sig ... endmodule type Infix2 = sig ... endmodule type Infix3 = sig ... endmodule type Infix_indexed = sig ... endmodule type Syntax = sig ... endmodule type Syntax2 = sig ... endmodule type Syntax3 = sig ... endmodule type Syntax_indexed = sig ... endmodule type S_without_syntax = sig ... endmodule type S = sig ... endmodule type S2 = sig ... endmodule type S3 = sig ... endmodule type S_indexed = sig ... endmodule Make_indexed (X : Basic_indexed) : S_indexed with type ('a, 'd, 'e) t := ('a, 'd, 'e) X.t