functor (M : MonadError) ->
sig
type ('a, 'b) withres = { cons : 'a -> 'b M.m; fin : 'b -> unit M.m; }
val bindres : ('a, 'b) WithM.??.withres -> 'a -> ('b -> 'c M.m) -> 'c M.m
val with_alt :
('a, 'b) WithM.??.withres ->
('c, 'b) WithM.??.withres ->
('a * 'c, exn option * 'b) WithM.??.withres
val with_identity : ('a, 'a) WithM.??.withres
val premap :
('a -> 'b) -> ('b, 'c) WithM.??.withres -> ('a, 'c) WithM.??.withres
type dir_abstract
val with_sys_chdir : (string, WithM.??.dir_abstract) WithM.??.withres
end