A paper relevant to this question is Henry Baker's "Equal Rights for Functional Objects, or The More Things Change, The More They Are The Same": http://pipeline.com/~hbaker1/ObjectIdentity.html "We will argue that the notions of 'object identity' and 'distinguishable by side-effects/assignment' are equivalent, and that applying this equivalence provides cleaner semantics for argument-passing, result-returning, and the built-in 'equality' predicate of a programming language. Our model solves the problem of integrating functional (immutable) objects (e.g., numbers, strings) with non-functional objects by providing all objects with 'object identity', but without the usual costs of full object status."
Attachment:
pgp03638.pgp
Description: PGP signature