sig type t val create : unit -> Lwt_mutex.t val lock : Lwt_mutex.t -> unit Lwt.t val unlock : Lwt_mutex.t -> unit val with_lock : Lwt_mutex.t -> (unit -> 'a Lwt.t) -> 'a Lwt.t end