(vicare language-extensions hooks) exports an API
defining hooks: opaque Scheme objects, disjoint from other types,
referencing a list of functions which can be applied to arguments at a
specified point in a program. Vicare Scheme hooks are somewhat
similar to GNU Guile hooks.
Build and return a new hook object.
#t if obj is a hook object, otherwise
#t if hook is a hook object and it is empty, otherwise
Register proc as hook function; return unspecified values. If
#f or not used: the new function is registered as
first, else it is registered as last.
Remove a previously registered hook function. Return unspecified values.
Remove all the previously registered hooks.
Return the list of registered functions.
Run all the hook functions applying them to the given arguments. Return unspecified values.