Module type Hook.S

module type S = sig .. end
Output signature.

type param 
Type of the parameter of the functions registered in the hook.
type result 
Type of the result of the functions. result can be unit (for iterative hooks) or param (for folding hooks)
val extend : (param -> result) -> unit
Add a new function to the hook. If once is true, the hook is added if and only if it was not already present. Comparison is done using (==). Default is false.
val extend_once : (param -> result) -> unit
Same as extend, but the hook is added only if is is not already present; the comparison is made using (==)
Since Oxygen-20120901
val apply : param -> result
Apply all the functions of the hook on the given parameter. These functions are applied from the least recently entered to the most recently entered.
val is_empty : unit -> bool
Is no function already registered in the hook?
val clear : unit -> unit
Clear the hook.
val length : unit -> int
Number of registered functions.