Module type Monad_intf.Monad
module type Basic = Basicmodule type Basic2 = Basic2module type Basic3 = Basic3module type Basic_indexed = Basic_indexedmodule type Infix = Infixmodule type Infix2 = Infix2module type Infix3 = Infix3module type Infix_indexed = Infix_indexedmodule type Syntax = Syntaxmodule type Syntax2 = Syntax2module type Syntax3 = Syntax3module type Syntax_indexed = Syntax_indexedmodule type S_without_syntax = S_without_syntaxmodule type S = Smodule type S2 = S2module type S3 = S3module type S_indexed = S_indexedmodule Make_indexed : functor (X : Basic_indexed) -> S_indexed with type ('a, 'd, 'e) t := ('a, 'd, 'e) X.t