On Fri, Jun 25, 2021 at 2:58 AM Shiro Kawai <xxxxxx@gmail.com> wrote:
 
Ah, I thought this wasn't necessarily the case (e.g. adjoining an item to a set that already has the item), but if we allow the returned object to be passed to mutating procedures, this guarantee is indeed necessary.

Only if there are procedures that are guaranteed to mutate.