[2] For "immediate" data types (ints, float), => and @=> are identical: they move the data, not the pointer. This is why
int foo;
int bar;
foo @=> bar; // assigns 0 to bar
1 => foo;
doesn't modify bar -- bar will still have a value of zero.
Any disagreements?
Yes, sorry but I have to disagree. I don't see why I shouldn't be allowed to have primitives reference each other; I don't see any use in two operators accomplishing the same thing and when we'd want another type of behaviour we'd need to encapsulate the variable in a array.
Sadly the online language specification doesn't have a great deal to say on this but the manual states; "similarly, reference assignment duplicates a reference to an object and assigns the reference to a reference variable. The object itself is not duplicated. All ChucK object assignments are reference assignments."