sig
type t = java'util'concurrent'locks'Lock java_instance
val make_reentrant : ?fair:bool -> unit -> Lock.t
val lock : Lock.t -> unit
val lock_interruptibly : Lock.t -> unit
val new_condition : Lock.t -> Condition.t
val try_lock : Lock.t -> bool
val try_lock_time : Lock.t -> java_long -> TimeUnit.t -> bool
val unlock : Lock.t -> unit
val null : Lock.t
external is_null : Lock.t -> bool = "java is_null"
external is_not_null : Lock.t -> bool = "java is_not_null"
val wrap : Lock.t -> Lock.t option
val unwrap : Lock.t option -> Lock.t
end