sig val extend : (unit -> unit) -> unit val apply : unit -> unit end