These two seemingly equivalent things are represented differently, though I cannot tell you why these entered like this differ. Presumably there’s some magic in the tab completion that simplifies/normalizes the representation to make it smaller?
Identifiers in Julia are NFC-normalized. From the documentation:
Some Unicode characters are considered to be equivalent in identifiers. Different ways of entering Unicode combining characters (e.g., accents) are treated as equivalent (specifically, Julia identifiers are NFC-normalized). The Unicode characters ɛ (U+025B: Latin small letter open e) and µ (U+00B5: micro sign) are treated as equivalent to the corresponding Greek letters, because the former are easily accessible via some input methods.
I don’t know if the different behaviors of :... and Symbol(...) is intended. I think Symbol is meant to allow creating symbols for invalid identifiers, see for example this part of the documentation:
The syntax var"#example#" refers to a variable named Symbol("#example#") , even though #example# is not a valid Julia identifier name.
It seems reasonable that symbols declared with : would be normalized but maybe it’s worth filing an issue to clarify/document this potential gotcha?
This is very hard to search for, but I’m sure I’ve seen multiple discussions where it was made clear that : is not meant to be equivalent to Symbol. I think : is basically “turn the following into an expression”, which just happens to sometimes coincide with Symbol or other types:
julia> typeof(:1)
Int64
julia> typeof(:a)
Symbol
julia> typeof(:(a+b))
Expr
so if you want a symbol, you should probably use Symbol