The original definition of the symbol can be restored at any time by the unencapsulate function. Each encapsulation has a type which may be an arbitrary lisp object. If a symbol has several encapsulations of different types, then any one of them can be removed without affecting more recent ones. A symbol may have more than one encapsulation of the same type, but only the most recent one can be undone. Saves the current definition of symbol , and replaces it with a function which returns the result of evaluating the form, body .
Type is an arbitrary lisp object which is the type of encapsulation.
A list of the arguments to the function. The unencapsulated definition of the function. Type is compared with eq . Encapsulations of other types are left in place. Returns nil otherwise.