Dspec classes provide a set of handlers, to allow uniform handling of different types of definitions by other parts of the system, such as the editor and various browsers.
The most important handlers are dspec-defined-p and dspec-undefiner for testing if a dspec is currently defined and for undefining a dspec.
New dspec classes are defined using define-dspec-class.
Dspec classes can be subclassed. The top-level classes correspond to distinct global namespaces (such as
for variables and constants and
for functions and macros), and at each level, all the subclasses are distinct from each other (but they do not have to form a complete partition of the superclass). See Details of system dspec classes and aliases for the full hierarchy of system-provided classes.
You are allowed to define new top-level classes and subclass them, but you cannot add new subclasses to a system-provided class. However, see Dspec aliases for how to add new ways of making existing definitions.