The cl-hooks Reference Manual

This is the cl-hooks Reference Manual, version 0.2.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 14:35:54 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-hooks

This system provides the hooks extension point mechanism (as known, e.g., from GNU Emacs).

Maintainer

Jan Moringen <>

Author

Jan Moringen <>

License

LLGPLv3

Version

0.2.1

Dependencies
  • alexandria (system).
  • let-plus (system).
  • closer-mop (system).
  • trivial-garbage (system).
Source

cl-hooks.asd.

Child Component

src/early (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 cl-hooks/src/early

Source

cl-hooks.asd.

Parent Component

cl-hooks (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 cl-hooks/cl-hooks.asd

Source

cl-hooks.asd.

Parent Component

cl-hooks (system).

ASDF Systems

cl-hooks.


4.1.2 cl-hooks/src/early/package.lisp

Source

cl-hooks.asd.

Parent Component

src/early (module).

Packages

hooks.


4.1.3 cl-hooks/src/early/conditions.lisp

Dependency

package.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.4 cl-hooks/src/early/protocol.lisp

Dependency

conditions.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.5 cl-hooks/src/early/util.lisp

Dependency

protocol.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Internals

4.1.6 cl-hooks/src/early/hook.lisp

Dependency

util.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.7 cl-hooks/src/early/state.lisp

Dependency

hook.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.8 cl-hooks/src/early/mixins.lisp

Dependency

state.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface
Internals

4.1.9 cl-hooks/src/early/symbol.lisp

Dependency

mixins.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.10 cl-hooks/src/early/object-internal.lisp

Dependency

symbol.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.11 cl-hooks/src/early/object-external.lisp

Dependency

object-internal.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

4.1.12 cl-hooks/src/early/macros.lisp

Dependency

object-external.lisp (file).

Source

cl-hooks.asd.

Parent Component

src/early (module).

Public Interface

5 Packages

Packages are listed by definition order.


5.1 hooks

This package contains functions and classes which implement the "hook" extension point mechanism as known, for example, from GNU Emacs.

Hooks are first-class objects which can be inspected and modified via accessors:

+ ‘hook-name’
+ ‘hook-handlers’
+ ‘hook-combination’

+ ‘run-hook’

+ ‘add-to-hook’
+ ‘remove-from-hook’
+ ‘clear-hook’

The builtin kinds of hooks are the following

+ list of handlers as value of a symbol
+ list of handlers in an object slot
+ hook object is associated to arbitrary Lisp object

Source

package.lisp.

Use List
  • alexandria.
  • common-lisp.
  • let-plus.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Macros

Macro: defhook (hook &key combination documentation)

Instantiate HOOK and set COMBINATION and DOCUMENTATION.

Package

hooks.

Source

macros.lisp.

Macro: define-external-hook-activation ((name &key object hook class) &body body)

Execute BODY when the external hook named NAME becomes active. The keyword arguments object and hook can be used to name variables will be bound to the object and the hook object respectively during the execution of BODY.

Package

hooks.

Source

macros.lisp.

Macro: define-hook-activation ((hook &key var) activate &optional deactivate)

Execute [DE]ACTIVATE when HOOK becomes [in]active respectively. HOOK is a form that designates or retrieves a hook. Examples include a symbol designating a hook stored in that symbol or a form
like (object-hook OBJECT HOOK-SYMBOL).
Within the forms ACTIVATE and DEACTIVATE, the variable VAR (when specified) can be used to refer to the hook object (not HOOK, which is a form to retrieve the hook object).

Package

hooks.

Source

macros.lisp.

Macro: define-hook-activation-method ((hook &key var) &body body)

When HOOK becomes active, execute BODY which has to return a method object. When HOOK becomes inactive, the method is removed. The keyword argument VAR can be used to specify the name of a variable to which the hook object will be bound during the execution of BODY.

Package

hooks.

Source

macros.lisp.

Macro: define-internal-hook-activation ((class hook &key instance hook) activate deactivate)

Execute ACTIVATE when internal HOOK of an instance of CLASS becomes active and execute DEACTIVATE when such a hook becomes inactive. The keyword arguments INSTANCE and HOOK can be used to name variables that will be bound to the instance and the hook object respectively during the execution of ACTIVATE and DEACTIVATE.

Package

hooks.

Source

macros.lisp.

Macro: with-handlers (hooks-and-handlers &body body)

Run BODY with handlers as specified in HOOKS-AND-HANDLERS. HOOKS-AND-HANDLERS is a list of items of the form (HOOK HANDLER) where HOOK is a hook and HANDLER is coercable to a function.

Example:
((with-handlers (((object-external object ’hook)
(lambda (args)
(format t "~S~%" args)))) (do-something))

Package

hooks.

Source

macros.lisp.


6.1.2 Ordinary functions

Function: run-hook-fast (hook &rest args)

Run HOOK with ARGS like ‘run-hook’, with the following differences: + do not run any methods installed on ‘run-hook’
+ do not install any restarts
+ do not collect or combine any values returned by handlers.

Package

hooks.

Source

hook.lisp.


6.1.3 Generic functions

Generic Function: add-to-hook (hook handler &key duplicate-policy)

Add HANDLER to HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: add-to-hook (hook (handler function) &key duplicate-policy)
Source

hook.lisp.

Generic Function: clear-hook (hook)

Remove all handlers from HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: clear-hook (hook)
Source

hook.lisp.

Generic Function: combine-results (hook combination results)

Combine RESULTS of running HOOK’s handlers according to COMBINATION.

Package

hooks.

Source

protocol.lisp.

Methods
Method: combine-results (hook (combination function) (results list))
Source

hook.lisp.

Method: combine-results (hook (combination (eql progn)) (results list))
Source

hook.lisp.

Generic Function: external-hook (object hook)

Return a representation of the slot residing outside of OBJECT under the name HOOK.

Package

hooks.

Source

object-external.lisp.

Methods
Method: external-hook (object (hook symbol))
Generic Function: hook-combination (hook)

Return the hook combination used by HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: hook-combination ((hook symbol))
Source

symbol.lisp.

Reader Method: hook-combination ((internal-combination-mixin internal-combination-mixin))

The hook combination used by this hook.

Source

mixins.lisp.

Target Slot

combination.

Method: hook-combination (hook)
Source

hook.lisp.

Generic Function: (setf hook-combination) (hook)

Install NEW-VALUE as the hook combination used by HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: (setf hook-combination) ((hook symbol))
Source

symbol.lisp.

Writer Method: (setf hook-combination) ((internal-combination-mixin internal-combination-mixin))

The hook combination used by this hook.

Source

mixins.lisp.

Target Slot

combination.

Generic Reader: hook-error-handler (condition)
Package

hooks.

Methods
Reader Method: hook-error-handler ((condition duplicate-handler))
Source

conditions.lisp.

Target Slot

handler.

Generic Reader: hook-error-hook (condition)
Package

hooks.

Methods
Reader Method: hook-error-hook ((condition hook-error-mixin))
Source

conditions.lisp.

Target Slot

hook.

Generic Function: hook-handlers (hook)

Return a list of handlers attached to HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: hook-handlers ((hook object-hook))
Source

object-internal.lisp.

Method: hook-handlers ((hook symbol))
Source

symbol.lisp.

Reader Method: hook-handlers ((internal-handlers-mixin internal-handlers-mixin))

The list of handlers associated with this hook.

Source

mixins.lisp.

Target Slot

handlers.

Generic Function: (setf hook-handlers) (hook)

Replace list of handlers attached to HOOK with NEW-VALUE.

Package

hooks.

Source

protocol.lisp.

Methods
Method: (setf hook-handlers) ((hook object-hook))
Source

object-internal.lisp.

Method: (setf hook-handlers) ((hook symbol))
Source

symbol.lisp.

Writer Method: (setf hook-handlers) ((internal-handlers-mixin internal-handlers-mixin))

The list of handlers associated with this hook.

Source

mixins.lisp.

Target Slot

handlers.

Method: (setf hook-handlers) :around (hook)

Check whether HOOK becomes active or inactive.

Source

state.lisp.

Generic Function: hook-name (hook)

Return the name of HOOK (a symbol).

Package

hooks.

Source

protocol.lisp.

Methods
Reader Method: hook-name ((external-hook external-hook))

The name of this hook.

Source

object-external.lisp.

Target Slot

name.

Reader Method: hook-name ((object-hook object-hook))

The slot in which the hook resides.

Source

object-internal.lisp.

Target Slot

slot.

Method: hook-name ((hook symbol))
Source

symbol.lisp.

Generic Reader: hook-object (object)
Package

hooks.

Methods
Reader Method: hook-object ((object-hook object-hook))

The object in which the hook resides.

Source

object-internal.lisp.

Target Slot

object.

Generic Reader: malformed-handler-binding-binding (condition)
Package

hooks.

Methods
Reader Method: malformed-handler-binding-binding ((condition malformed-handler-binding))
Source

conditions.lisp.

Target Slot

binding.

Generic Function: object-hook (object hook)

Return a representation of the slot residing in OBJECT under the name HOOK.

Package

hooks.

Source

object-internal.lisp.

Methods
Method: object-hook ((object standard-object) (hook symbol))
Generic Function: on-become-active (hook)

Called when HOOK becomes active.

Package

hooks.

Source

state.lisp.

Methods
Method: on-become-active ((hook activatable-mixin))

If HOOK has a handler for becoming active installed, call that handler.

Source

mixins.lisp.

Method: on-become-active (hook)

Default behavior is to do nothing.

Generic Function: on-become-inactive (hook)

Called when HOOK becomes inactive.

Package

hooks.

Source

state.lisp.

Methods
Method: on-become-inactive ((hook activatable-mixin))

If HOOK has a handler for becoming inactive installed, call that handler.

Source

mixins.lisp.

Method: on-become-inactive (hook)

Default behavior is to do nothing.

Generic Function: remove-from-hook (hook handler)

Remove HANDLER from HOOK.

Package

hooks.

Source

protocol.lisp.

Methods
Method: remove-from-hook (hook (handler function))
Source

hook.lisp.

Generic Function: run-hook (hook &rest args)

Run HOOK passing extra args ARGS to all handlers.

Package

hooks.

Source

protocol.lisp.

Methods
Method: run-hook (hook &rest args)
Source

hook.lisp.


6.1.4 Standalone methods

Method: (setf documentation) ((hook object-hook) type)
Source

object-internal.lisp.

Method: documentation ((hook object-hook) type)
Source

object-internal.lisp.

Method: (setf documentation) ((hook internal-documentation-mixin) type)
Source

mixins.lisp.

Method: documentation ((hook internal-documentation-mixin) type)
Source

mixins.lisp.

Method: print-object ((object simple-printing-mixin) stream)
Source

mixins.lisp.


6.1.5 Conditions

Condition: duplicate-handler

This condition is signaled if a handler is added to a hook to which it has been added before and the policy does not permit handlers to be added to a hook multiple times.

Package

hooks.

Source

conditions.lisp.

Direct superclasses

hook-error-mixin.

Direct methods

hook-error-handler.

Direct Default Initargs
InitargValue
:handler(required-argument handler)
Direct slots
Slot: handler

The handler which was added to the hook twice.

Initargs

:handler

Readers

hook-error-handler.

Writers

This slot is read-only.

Condition: hook-error-mixin

This condition servers as a superclass for condition classes that are related to hooks.

Package

hooks.

Source

conditions.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods

hook-error-hook.

Direct Default Initargs
InitargValue
:hook(required-argument hook)
Direct slots
Slot: hook

The hook object from which the error originated.

Initargs

:hook

Readers

hook-error-hook.

Writers

This slot is read-only.

Condition: malformed-handler-binding

This condition is signaled if an invalid hook-handler binding is detected during the expansion of an ‘with-handlers’ macro.

Package

hooks.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

malformed-handler-binding-binding.

Direct Default Initargs
InitargValue
:binding(required-argument binding)
Direct slots
Slot: binding

The invalid hook-handler binding.

Initargs

:binding

Readers

malformed-handler-binding-binding.

Writers

This slot is read-only.

Condition: no-such-hook

This condition is signaled when a designated hook cannot be found.

Package

hooks.

Source

conditions.lisp.

Direct superclasses

hook-error-mixin.


6.1.6 Classes

Class: external-hook

Instances of this class represent hooks that reside outside of objects.

Package

hooks.

Source

object-external.lisp.

Direct superclasses
Direct methods

hook-name.

Direct Default Initargs
InitargValue
:name(required-argument name)
Direct slots
Slot: name

The name of this hook.

Type

symbol

Initargs

:name

Readers

hook-name.

Writers

This slot is read-only.

Class: object-hook

Instances of this class represent hooks that reside in object.

Package

hooks.

Source

object-internal.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:object(required-argument object)
:slot(required-argument slot)
Direct slots
Slot: object

The object in which the hook resides.

Type

standard-object

Initargs

:object

Readers

hook-object.

Writers

This slot is read-only.

Slot: slot

The slot in which the hook resides.

Type

symbol

Initargs

:slot

Readers

hook-name.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Ordinary functions

Function: read-value ()

Read a replacement value.

Package

hooks.

Source

util.lisp.

Function: run-handler-without-restarts (handler &rest args)

Run HANDLER with ARGS.

Package

hooks.

Source

util.lisp.

Function: signal-with-hook-and-handler-restarts (hook handler condition retry-hook use-value-for-hook retry-handler skip-handler use-value-for-handler)

Signal CONDITION with appropriate restarts installed.

The installed restarts for HANDLER are:
+ ‘retry’
+ ‘continue’
+ ‘use-value’

The installed restarts for HOOK are:
+ ‘retry’
+ ‘use-value’

Package

hooks.

Source

util.lisp.


6.2.2 Classes

Class: activatable-mixin

This mixin adds slot to functions which run when the hook becomes active or inactive.

Package

hooks.

Source

mixins.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: on-become-active

If a function is stored in this slot, the function is called when the hook becomes active.

Type

(or null function)

Initargs

hooks:on-become-active

Slot: on-become-inactive

If a function is stored in this slot, the function is called when the hook becomes inactive.

Type

(or null function)

Initargs

hooks:on-become-inactive

Class: internal-combination-mixin

This mixin adds a slot which stores the hook combination of the hook.

Package

hooks.

Source

mixins.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: combination

The hook combination used by this hook.

Initform

(quote progn)

Initargs

:combination

Readers

hook-combination.

Writers

(setf hook-combination).

Class: internal-documentation-mixin

This mixin adds a slot which stores the documentation of the hook.

Package

hooks.

Source

mixins.lisp.

Direct subclasses

external-hook.

Direct methods
Direct slots
Slot: documentation

Documentation string of the hook.

Package

common-lisp.

Type

(or null string)

Initargs

:documentation

Class: internal-handlers-mixin

This mixin adds a slot which stores the list of handlers of the hook.

Package

hooks.

Source

mixins.lisp.

Direct subclasses

external-hook.

Direct methods
Direct slots
Slot: handlers

The list of handlers associated with this hook.

Type

list

Initform

(quote nil)

Initargs

:handlers

Readers

hook-handlers.

Writers

(setf hook-handlers).

Class: simple-printing-mixin

This mixin adds simple printing behavior for hooks.

Package

hooks.

Source

mixins.lisp.

Direct subclasses
Direct methods

print-object.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   C   D   E   F   G   H   M   O   P   R   S   W  
Index Entry  Section

(
(setf documentation): Public standalone methods
(setf documentation): Public standalone methods
(setf hook-combination): Public generic functions
(setf hook-combination): Public generic functions
(setf hook-combination): Public generic functions
(setf hook-handlers): Public generic functions
(setf hook-handlers): Public generic functions
(setf hook-handlers): Public generic functions
(setf hook-handlers): Public generic functions
(setf hook-handlers): Public generic functions

A
add-to-hook: Public generic functions
add-to-hook: Public generic functions

C
clear-hook: Public generic functions
clear-hook: Public generic functions
combine-results: Public generic functions
combine-results: Public generic functions
combine-results: Public generic functions

D
defhook: Public macros
define-external-hook-activation: Public macros
define-hook-activation: Public macros
define-hook-activation-method: Public macros
define-internal-hook-activation: Public macros
documentation: Public standalone methods
documentation: Public standalone methods

E
external-hook: Public generic functions
external-hook: Public generic functions

F
Function, read-value: Private ordinary functions
Function, run-handler-without-restarts: Private ordinary functions
Function, run-hook-fast: Public ordinary functions
Function, signal-with-hook-and-handler-restarts: Private ordinary functions

G
Generic Function, (setf hook-combination): Public generic functions
Generic Function, (setf hook-handlers): Public generic functions
Generic Function, add-to-hook: Public generic functions
Generic Function, clear-hook: Public generic functions
Generic Function, combine-results: Public generic functions
Generic Function, external-hook: Public generic functions
Generic Function, hook-combination: Public generic functions
Generic Function, hook-error-handler: Public generic functions
Generic Function, hook-error-hook: Public generic functions
Generic Function, hook-handlers: Public generic functions
Generic Function, hook-name: Public generic functions
Generic Function, hook-object: Public generic functions
Generic Function, malformed-handler-binding-binding: Public generic functions
Generic Function, object-hook: Public generic functions
Generic Function, on-become-active: Public generic functions
Generic Function, on-become-inactive: Public generic functions
Generic Function, remove-from-hook: Public generic functions
Generic Function, run-hook: Public generic functions

H
hook-combination: Public generic functions
hook-combination: Public generic functions
hook-combination: Public generic functions
hook-combination: Public generic functions
hook-error-handler: Public generic functions
hook-error-handler: Public generic functions
hook-error-hook: Public generic functions
hook-error-hook: Public generic functions
hook-handlers: Public generic functions
hook-handlers: Public generic functions
hook-handlers: Public generic functions
hook-handlers: Public generic functions
hook-name: Public generic functions
hook-name: Public generic functions
hook-name: Public generic functions
hook-name: Public generic functions
hook-object: Public generic functions
hook-object: Public generic functions

M
Macro, defhook: Public macros
Macro, define-external-hook-activation: Public macros
Macro, define-hook-activation: Public macros
Macro, define-hook-activation-method: Public macros
Macro, define-internal-hook-activation: Public macros
Macro, with-handlers: Public macros
malformed-handler-binding-binding: Public generic functions
malformed-handler-binding-binding: Public generic functions
Method, (setf documentation): Public standalone methods
Method, (setf documentation): Public standalone methods
Method, (setf hook-combination): Public generic functions
Method, (setf hook-combination): Public generic functions
Method, (setf hook-handlers): Public generic functions
Method, (setf hook-handlers): Public generic functions
Method, (setf hook-handlers): Public generic functions
Method, (setf hook-handlers): Public generic functions
Method, add-to-hook: Public generic functions
Method, clear-hook: Public generic functions
Method, combine-results: Public generic functions
Method, combine-results: Public generic functions
Method, documentation: Public standalone methods
Method, documentation: Public standalone methods
Method, external-hook: Public generic functions
Method, hook-combination: Public generic functions
Method, hook-combination: Public generic functions
Method, hook-combination: Public generic functions
Method, hook-error-handler: Public generic functions
Method, hook-error-hook: Public generic functions
Method, hook-handlers: Public generic functions
Method, hook-handlers: Public generic functions
Method, hook-handlers: Public generic functions
Method, hook-name: Public generic functions
Method, hook-name: Public generic functions
Method, hook-name: Public generic functions
Method, hook-object: Public generic functions
Method, malformed-handler-binding-binding: Public generic functions
Method, object-hook: Public generic functions
Method, on-become-active: Public generic functions
Method, on-become-active: Public generic functions
Method, on-become-inactive: Public generic functions
Method, on-become-inactive: Public generic functions
Method, print-object: Public standalone methods
Method, remove-from-hook: Public generic functions
Method, run-hook: Public generic functions

O
object-hook: Public generic functions
object-hook: Public generic functions
on-become-active: Public generic functions
on-become-active: Public generic functions
on-become-active: Public generic functions
on-become-inactive: Public generic functions
on-become-inactive: Public generic functions
on-become-inactive: Public generic functions

P
print-object: Public standalone methods

R
read-value: Private ordinary functions
remove-from-hook: Public generic functions
remove-from-hook: Public generic functions
run-handler-without-restarts: Private ordinary functions
run-hook: Public generic functions
run-hook: Public generic functions
run-hook-fast: Public ordinary functions

S
signal-with-hook-and-handler-restarts: Private ordinary functions

W
with-handlers: Public macros


A.4 Data types

Jump to:   A   C   D   E   F   H   I   M   N   O   P   S   U  
Index Entry  Section

A
activatable-mixin: Private classes

C
cl-hooks: The cl-hooks system
cl-hooks.asd: The cl-hooks/cl-hooks․asd file
Class, activatable-mixin: Private classes
Class, external-hook: Public classes
Class, internal-combination-mixin: Private classes
Class, internal-documentation-mixin: Private classes
Class, internal-handlers-mixin: Private classes
Class, object-hook: Public classes
Class, simple-printing-mixin: Private classes
Condition, duplicate-handler: Public conditions
Condition, hook-error-mixin: Public conditions
Condition, malformed-handler-binding: Public conditions
Condition, no-such-hook: Public conditions
conditions.lisp: The cl-hooks/src/early/conditions․lisp file

D
duplicate-handler: Public conditions

E
external-hook: Public classes

F
File, cl-hooks.asd: The cl-hooks/cl-hooks․asd file
File, conditions.lisp: The cl-hooks/src/early/conditions․lisp file
File, hook.lisp: The cl-hooks/src/early/hook․lisp file
File, macros.lisp: The cl-hooks/src/early/macros․lisp file
File, mixins.lisp: The cl-hooks/src/early/mixins․lisp file
File, object-external.lisp: The cl-hooks/src/early/object-external․lisp file
File, object-internal.lisp: The cl-hooks/src/early/object-internal․lisp file
File, package.lisp: The cl-hooks/src/early/package․lisp file
File, protocol.lisp: The cl-hooks/src/early/protocol․lisp file
File, state.lisp: The cl-hooks/src/early/state․lisp file
File, symbol.lisp: The cl-hooks/src/early/symbol․lisp file
File, util.lisp: The cl-hooks/src/early/util․lisp file

H
hook-error-mixin: Public conditions
hook.lisp: The cl-hooks/src/early/hook․lisp file
hooks: The hooks package

I
internal-combination-mixin: Private classes
internal-documentation-mixin: Private classes
internal-handlers-mixin: Private classes

M
macros.lisp: The cl-hooks/src/early/macros․lisp file
malformed-handler-binding: Public conditions
mixins.lisp: The cl-hooks/src/early/mixins․lisp file
Module, src/early: The cl-hooks/src/early module

N
no-such-hook: Public conditions

O
object-external.lisp: The cl-hooks/src/early/object-external․lisp file
object-hook: Public classes
object-internal.lisp: The cl-hooks/src/early/object-internal․lisp file

P
Package, hooks: The hooks package
package.lisp: The cl-hooks/src/early/package․lisp file
protocol.lisp: The cl-hooks/src/early/protocol․lisp file

S
simple-printing-mixin: Private classes
src/early: The cl-hooks/src/early module
state.lisp: The cl-hooks/src/early/state․lisp file
symbol.lisp: The cl-hooks/src/early/symbol․lisp file
System, cl-hooks: The cl-hooks system

U
util.lisp: The cl-hooks/src/early/util․lisp file