Module type Monad_intf.Monad

module type Monad = sig .. end

module type Basic = Monad_intf.Basic
module type Basic2 = Monad_intf.Basic2
module type Infix = Monad_intf.Infix
module type Infix2 = Monad_intf.Infix2
module type S = Monad_intf.S
module type S2 = Monad_intf.S2
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 Ident: S  with type 'a t = 'a