Base.Monadmodule type Basic = sig ... endmodule type Basic2 = sig ... endmodule type Basic3 = sig ... endmodule type Basic_indexed = sig ... endmodule type Basic_local = sig ... endmodule type Basic2_local = sig ... endmodule type Infix = sig ... endmodule type Infix2 = sig ... endmodule type Infix3 = sig ... endmodule type Infix_indexed = sig ... endmodule type Infix_local = sig ... endmodule type Infix2_local = sig ... endmodule type Syntax = sig ... endmodule type Syntax2 = sig ... endmodule type Syntax3 = sig ... endmodule type Syntax_indexed = sig ... endmodule type Syntax_local = sig ... endmodule type Syntax2_local = sig ... endmodule type S_without_syntax = sig ... endmodule type S_without_syntax_local = sig ... endmodule type S = sig ... endmodule type S2 = sig ... endmodule type S3 = sig ... endmodule type S_indexed = sig ... endmodule type S_local = sig ... endmodule type S2_local = sig ... endmodule Make_indexed (X : Basic_indexed) : sig ... endmodule Make_local (X : Basic_local) : sig ... endmodule Make2_local (X : Basic2_local) : sig ... endmodule Of_monad_indexed (Monad : S_indexed) (M : sig ... end) : sig ... endmodule Ident : sig ... end