sig   type ('a, 'b) t   val return : '-> ('a, 'b) Pvem.ERROR_MONAD.t   val bind :     ('a, 'b) Pvem.ERROR_MONAD.t ->     ('-> ('c, 'b) Pvem.ERROR_MONAD.t) -> ('c, 'b) Pvem.ERROR_MONAD.t   val ( >>= ) :     ('a, 'b) Pvem.ERROR_MONAD.t ->     ('-> ('c, 'b) Pvem.ERROR_MONAD.t) -> ('c, 'b) Pvem.ERROR_MONAD.t   val fail : '-> ('a, 'b) Pvem.ERROR_MONAD.t   val map :     ('a, 'b) Pvem.ERROR_MONAD.t -> ('-> 'c) -> ('c, 'b) Pvem.ERROR_MONAD.t   val ( >>| ) :     ('a, 'b) Pvem.ERROR_MONAD.t -> ('-> 'c) -> ('c, 'b) Pvem.ERROR_MONAD.t   val destruct :     ('a, 'b) Pvem.ERROR_MONAD.t ->     ([> `Error of '| `Ok of 'a ] -> ('c, 'd) Pvem.ERROR_MONAD.t) ->     ('c, 'd) Pvem.ERROR_MONAD.t   val ( >>< ) :     ('a, 'b) Pvem.ERROR_MONAD.t ->     ([> `Error of '| `Ok of 'a ] -> ('c, 'd) Pvem.ERROR_MONAD.t) ->     ('c, 'd) Pvem.ERROR_MONAD.t end