Pan supports a proper hook definition construct called define-hook. Define-hook describes and constrains the parameter signature of functions to be attached to the hook. Define-hook also includes hook documentation. Pan is explicit about the scope of the hook in the sense that define-hook specifies the scopes in which hooks may be attached. Another primitive called perform-hook activates functions that have been attached to the hook. Functions are attached to a hook in a specific scope, using another special form, define-hook-function (which either can attach a named function to the hook, or incorporate the function definition details into the construct). The list of defined hooks can be announced to users via Pan's help system.