object
  method lock : unit -> unit
  method signal : unit -> unit
  method unlock : unit -> unit
  method wait : unit -> unit
end