I understand that you can announce variable, but to be save, you'll have to announce it in every scope you want to declare it, so why not just use "var" or ":=" to declare and assign?
1- `var` keyword. Like javascript. It assumes all variables are global if not declared with `var`. 2- `global` keyword. Like PHP. It assumes all variables are local unlike that is annotated with `global`. 3- Ruby-like, Coffeescript-like.
A mixing of options number 1 and 3 was chosen.
I will open an issue regarding this subject, considering your proposal for future versions.
someVar := 123 //declared and assigned
someVar = 456 // reassigned
anotherVar = 777 // error: undeclared variable