Limited how? It’s a valid viewpoint that’s consistent with Julia’s semantics. The reality is somewhere in between “all 1
s are the same” and “all 1
s are equivalent copies”: some instances of the expression 1
will refer to a shared copy of the object 1
(via the Int
box cache), others will refer to separate copies (in registers or arrays), still others will never refer to any object at all (optimized out). The whole point of having semantics as an abstraction is that it doesn’t matter, so if someone wants to think of things in terms of one potential implementation of the semantics, they’re free to do so.