Def, fn and var

Agree, but this will depend on the differences between fn and def. If the only difference will be the implicit raises + object type, then var cannot be mandatory. Using one of them for fn will just add consistency on the code we will read on the future. Disallowing implicit declarations will help to know where you are defining a variable. or remove completely var. Then if you want to distinguish between declaration and reassignment, we could use something like y := x (inferred type) or y: Int = x (explicit type) for declarations, and y = z for reassignment. For def functions, implicit declarations are fine, it’s just like python.