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