[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]

    It seems counterintuitive to me that EQUAL doesn't follow structure
    forwarding.  For instance, if I make two identical non-interned symbols,
    and structure-forward one to the other, they are not EQUAL, although
    everything else one could imagine doing to them treats them as the same.
Actually almost everything I could imagine doing to them treats them as
different: using them as property indicators, doing memq in lists on them,
delq'ing one from a list containing both, etc.  The only operations that
treat them as the same are SET, SYMEVAL, PUTPROP, and their friends.

Equality of symbols is defined to be EQ.  If you have two symbols with
the same print name, value, definition, properties, and package cell,
that doesn't make them equal regardless of whether there is any structure
forwarding in the vicinity.