There’s a discussion on Reddit that has some interesting ideas. It prompted me to ask, whether it might be possible to add the possibility of declaring a variable before use. This might give the following advantages:
 More correctness checking
var x::Int
const var y::Int # May me assigned to only once
var z::Vector{Real}
x="test" # Error
x = 1
x = y # Error
y = 2
y = 3 # Error
z = 1.0 # Error
z = [1] # Error

Plausibly, it will assist the optimization, because compiler has the guarantee that the type will not change during the execution

It enables method dispatch on function return type
var x::Vector
var y::(Vector,Matrix)
x=eig(A) # Computes only eigenvalues
y=eig(A) # Computes both eigenvalues and eigenvectors
Would be interested to hear from the language experts whether this may be possible.
Thanks