module type MonadError =sig..end
type +'a m
val return : 'a -> 'a mval bind : ('a -> 'b m) ->
'a m -> 'b mval bind_rev : 'a m ->
('a -> 'b m) -> 'b mval error : exn -> 'a mval catch : (unit -> 'a m) ->
(exn -> 'a m) -> 'a m