Module type Monad_intf.Monad

module type Basic = Basic
module type Basic2 = Basic2
module type Basic3 = Basic3
module type Basic_indexed = Basic_indexed
module type Infix = Infix
module type Infix2 = Infix2
module type Infix3 = Infix3
module type Infix_indexed = Infix_indexed
module type Syntax = Syntax
module type Syntax2 = Syntax2
module type Syntax3 = Syntax3
module type Syntax_indexed = Syntax_indexed
module type S_without_syntax = S_without_syntax
module type S = S
module type S2 = S2
module type S3 = S3
module type S_indexed = S_indexed
module Make : functor (X : Basic) -> S with type 'a t := 'a X.t
module Make2 : functor (X : Basic2) -> S2 with type ('a, 'e) t := ('a'e) X.t
module Make3 : functor (X : Basic3) -> S3 with type ('a, 'd, 'e) t := ('a'd'e) X.t
module Make_indexed : functor (X : Basic_indexed) -> S_indexed with type ('a, 'd, 'e) t := ('a'd'e) X.t
module Ident : S with type 'a t = 'a