describe displays information about object
to stream.
For example, describe of a symbol might show the
symbol's value, its definition, and each of its properties.
describe of a float might show the number's
internal representation in a way that is useful for tracking
down round-off errors. In all cases, however, the nature and format of the
output of describe is implementation-dependent.
describe can describe something that it finds inside the object;
in such cases, a notational device such as increased indentation or positioning in a
table is typically used in order to visually distinguish such recursive descriptions
from descriptions of the argument object.
The actual act of describing the object is implemented by describe-object.
describe exists as an interface primarily to manage argument defaulting (including
conversion of arguments t and nil into stream objects) and to inhibit
any return values from describe-object.
describe is not intended to be an interactive function. In a
conforming implementation, describe must not, by default,
prompt for user input. User-defined methods for describe-object
are likewise restricted.