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

From: Dmitry Gutov <[email-masked]>
Date: Fri, 24 Apr 2020 19:46:38 +0300

On 24.04.2020 19:39, Mattias Engdegård wrote:
> That is an interesting point. What is the difference between CANNOT and SHOULD NOT, operationally? To the user, nothing; there is no gain from disobeying our advice.

The difference is at runtime, obviously. And the problem is using the 
words in a way that differs from other programming languages, for instance.

> It's useful to have the option to add strong checks, so that (setcar '(1 . 2) 3) throws an error. Then, what used to be SHOULD NOT turns into CANNOT, but the attentive user has no reason to change behaviour.

*If* we do that, we could call them constants. But I imagine we never 
will, for backward compatibility reasons. Emacs core itself modifies 
these "constants" at runtime in quite a few places, I'm sure.