sig type 'a m = 'a external return : 'a -> 'a WithM.Identity.m = "%identity" val bind : ('a -> 'b) -> 'a -> 'b val bind_rev : 'a -> ('a -> 'b) -> 'b val error : exn -> 'a val catch : (unit -> 'a) -> (exn -> 'a) -> 'a end