sig
  val extend : (unit -> unit) -> unit
  val play : (unit -> unit) Pervasives.ref
  val apply : unit -> unit
end