Notes on unifing DESCRIBE, INSPECT, and TTY-INSPECT DESCRIBE, INSPECT, and TTY-INSPECT all do similar things. Specifically, they display internal information about an object, and allow the guts of it to be examinded. Given the similarity of what these three functions do, it would be nice to only incode the knowledge about how objects are represented and what internal information they have in one place. This common code needs to examine the object, extract all the sub-components, and (optionally) specify how to change the values of these components. X3J13 has specified that DESCRIBE works by calling DESCRIBE-OBJECT. User supplied DESCRIBE-OBJECT methods are supposed to call DESCRIBE on their components. Therefore, the nature of recursing is specified for us. But it does leave us lots of freedom. Specifically, nested calls to DESCRIBE can just emit some annotation that the supplied argument goes at this place in the output, and arrange for DESCRIBE-OBJECT to be called later. But whatever we do, we want the naive usage of DESCRIBE/DESCRIBE-OBJECT work reasonably.