sig
type ('a, 'b) t
val bind :
('a, 'b) Exception.t ->
('b -> ('a, 'c) Exception.t) -> ('a, 'c) Exception.t
val return : 'a -> ('b, 'a) Exception.t
val throw : 'a -> ('a, 'b) Exception.t
val catch :
('a, 'b) Exception.t ->
('a -> ('c, 'b) Exception.t) -> ('c, 'b) Exception.t
val run : ('a -> 'b) -> ('c -> 'b) -> ('a, 'c) Exception.t -> 'b
end