Legend:
Library
Module
Module type
Parameter
Class
Class type
The "advice" feature lets you add to the existing definition of a function, by "advising the function". Each function can have multiple "pieces of advice", separately defined. Each defined piece of advice can be "enabled" or "disabled" explicitly. All the enabled pieces of advice for any given function actually take effect when you "activate" advice for that function, or when you define or redefine the function. Note that enabling a piece of advice and activating advice for a function are not the same thing.
A Class.t specifies the "class" of the advice--one of `before', `after', or `around'. Before-advice runs before the function itself; after-advice runs after the function itself; around-advice is wrapped around the execution of the function itself. (Info-goto-node "(elisp)Defining Advice")
defadvice currently only supports Around advice. (describe-function 'defadvice)(Info-goto-node "(elisp)Defining Advice")(Info-goto-node "(elisp)Around-Advice")