Module type 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