HaloO,

Darren Duncan wrote:
Long story shortened, if we consider the point in time where an "immutable" object's constructor returns as being when the object is born, then we have no problem. Any type of object is thereby immutable if it can not be changed after its constructor returns.

My lines of thinking about programs run along yours with values
existing eternally. But I think of the constructor of a constant
not as building the object in the first place *but* as making it
part of the current program. I imagine a conceptual membrane in
type space that encloses the program and shrinks and grows while
it is running. Mutability says something about the membrane's
changeability *not* about the value. This inside/outside metapher
is very strong. A mutable object is an aggregate of changing pieces
of the membrane in a fixed membrane frame of program real estate.

After understanding values as above, I just want to add that
the type of objects makes statements about all possible values
of its class. The runtime component of the type system enforces
all contstraints placed on values of the type while the program
attempts to modify the membrane to catch the values into it
or some such :)

In yet another view an object conceptually is a One Junction
over all possible values. At any given time in a program flow
the program space representing the object has a well defined
value. If it matches the intents of the programmer remains to
be seen!
--

Reply via email to