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