Module Hook

module Hook: sig .. end
Hook builder. A hook is a bunch of functions which can be extended and applied at any program point.

module type S = sig .. end
Output signature.
module type Comparable = sig .. end
module type S_ordered = sig .. end
hook with a notion of priority.
module type Iter_hook = S  with type result = unit
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.
module Make: 
functor (X : sig
end) -> S with type param = unit and type result = unit
Make a new empty hook from unit.
module Fold: 
functor (P : sig
type t 
end) -> S with type param = P.t and type result = P.t
module Build_ordered: 
functor (P : sig
module Id: Hook.Comparable 
type t 
end) -> S_ordered with type key = P.Id.t and type param = P.t and type result = unit
module Make_ordered: 
functor (P : sigend) -> S_ordered with type key = P.Id.t and type param = unit and type result = unit
module Fold_ordered: 
functor (P : sig
module Id: Hook.Comparable 
type t 
end) -> S_ordered with type key = P.Id.t and type param = P.t and type result = P.t