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 : sig
module Id: Hook.Comparable 
end-> 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