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