Nvim_lock.Permission_to_runPermission to communicate with Neovim. Implemented as an Mvar.t but only "view" permissions are exposed (no putting or taking).
val value_available : t -> unit Async.Deferred.tval taken : t -> unit Async.Deferred.tval peek : t -> [ `Ok | `Expired ] option