sig type param type result val extend : (Hook.S.param -> Hook.S.result) -> unit val apply : Hook.S.param -> Hook.S.result val is_empty : unit -> bool val clear : unit -> unit val length : unit -> int end