Subject: bug#40671: [DOC] modify literal objects

From: Dmitry Gutov <[email-masked]>
Date: Mon, 11 May 2020 03:26:59 +0300

Thanks, Michael,

+1 on your points, but this one especially:

On 11.05.2020 03:00, Michael Heerdegen wrote:

>> +  A mutable object stops being mutable if it is part of an expression
>> +that is evaluated.  For example:
> 
> FWIW, I would feel better about the word "mutable" if you would
> introduce the term like "safely mutable", and then say that we call it
> just "mutable" in the following sections because this is shorter.  Drew
> mentioned his dislike for the term "safe" AFAIR but I think "my Emacs
> won't crash if I follow this" vs. "it can crash" describes some kind of
> safety.

"safely mutable" definitely sounds better to me. And while we might use 
the shorthand "mutable" in the corresponding section, while referring to 
this notion outside of it, it would be better to use the full two-word 
version.

>> +  When the same value appears multiple times in a program, the Lisp
>> +interpreter might save time or space by reusing existing values or
>> +their components.  For example, @code{(eq "abc" "abc")} returns
> 
> I think we call "values" what evaluation of expressions yields, so
> values don't appear in a program (to be read).  I don't know the
> backgrounds and when this can happen.  Is it always the interpreter that
> does this mapping?
> 
> "Same syntax" is not good as well:
> 
>     (eq (list 1 2 3) (list 1 2 3))
> 
> doesn't provoke the pitfall you warn about, but your wording doesn't
> make clear why the one case is ok and the other is not.  Maybe it's
> again as simple as saying something about objects as being part of a
> program?

FWIW, CLtL seems to use a clunky term "similar as constants" for this.