Hooks are used throughout scwm to provide a convenient mechanism for user callbacks on particular events. Fundamentally, a hook is just a variable that contains a list of procedures that are called in order when the relevant event occurs. However, several convenience macros are provided for manipulating hooks; see add-hook!, remove-hook!, reset-hook!, and run-hook.