As an example, the two expressions evaluated below have the same "printed" representation, namely ((A) (A)), but they have very different internal structure. Here the structure is shared:
* (let ((item '(a))) (list item item))
((A) (A))
Here each (a) is a distinct entity:
* '((a) (a))
((A) (A))
Specifically, the value of the first expression is a two-element list were the two elements are identical; the value of the second expression is also a two-element list, but its two elements are distinct (i.e. not identical).
How can I represent these two values in a way that makes this difference in their internal structures more apparent?
What you are looking for is
*print-circle*:If you want "
print-readconsistency", you should investigate*print-readably*andwith-standard-io-syntax:should either return
Tor signal an error of typeprint-not-readable.