Arrgh. lets try this again (for examples)
Statement: $bar = $foo is my_prop = 0 is some_prop;
This makes $foo have 'my_prop' and 'some_prop' with the value 0 - and $bar have
'my_prop' and 'some_prop' with the value 0.
Statement: $bar = 0;
This makes $bar have no properties with the value 0 (ie: it clears out all
non-persistent properties)
Statement: $bar isnt my_prop;
This makes $bar keep all of its properties, removing my_prop;
Statement: $bar = 0 is const;
This makes $bar now a constant.
The persist keyword makes it so properties (note - no 'value', or 'variable'
here persist across assignment:
Statement: $bar = 1 is my_prop, persistant;
Now, $bar will be 'my_prop' even if it is reassigned.
Statement: $bar = 1 is persistant;
Now, $bar will keep all of its properties through assignment.
Anyways, just a clarification. Get rid of the distinction between 'value' or
'variable' properties, and you have no clumsy syntax or confusion.
Ed