Module type Monad.S3

module type S3 = sig .. end

type ('_, '_, '_) t 
include Monad.Basic3
include Applicative.S3
val (>>=) : ('p, 'q, 'a) t ->
('a -> ('p, 'q, 'b) t) -> ('p, 'q, 'b) t
val join : ('p, 'q, ('p, 'q, 'a) t) t -> ('p, 'q, 'a) t
val mcompose : ('b -> ('p, 'q, 'c) t) ->
('a -> ('p, 'q, 'b) t) -> 'a -> ('p, 'q, 'c) t