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