This function deletes a previously defined generic function.
Syntax
(undefgeneric <generic-function-name>)
If the symbol * is used for <generic-function-name>, then
all generic functions will be deleted (unless there exists a generic
function called *). This function removes the header and all methods
for a generic function. The undefgeneric command can be used to
remove generic functions at any time. Exceptions: A generic function
may not be deleted when any of its methods are executing or when
there is still a reference to it in another loaded construct,
such as a rule RHS. This function has no return value.