Monads.Monad_phantom'
type ('a, 'p) t
include Monad_generalised with type ('a, _, _, 'p) t := ('a, 'p) t
val return : 'a -> ('a, 'p) t
val bind : ('a, 'p) t -> ('a -> ('b, 'p) t) -> ('b, 'p) t