Module type Monads.Monad_generalised

type (_, +_, -_, _) t
val return : 'a -> ('a'i'i'p) t
val bind : ('a'i'j'p) t -> ('a -> ('b'j'k'p) t) -> ('b'i'k'p) t