Module type Monad.S

module type S = sig .. end

type '_ t 
include Monad.Basic
include Applicative.S
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val join : 'a t t -> 'a t
val mcompose : ('b -> 'c t) -> ('a -> 'b t) -> 'a -> 'c t