Functor Hook.Build

module Build: 
functor (P : sig
type t 
end-> Iter_hook  with type param = P.t

Make a new empty hook from a given type of parameters.

Parameters:
P : sig type t end

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.

val extend_once : (param -> result) -> unit

Same as extend, but the hook is added only if it is not already present; the comparison is made using (==)

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.