I have come to the conclusion that “fn” and “var” are not the right abstractions for a Pythonic language.
“Var” is redundant because every scoped variable assignment can be converted to a function scope. Potential naming conflicts could be resolved by renaming the variable.
Note that annotating function arguments with “var” would not be affected.
“Fn” is also redundant because “def” exists and has almost the same functionality. “Def” and “Fn” are not the right abstractions because they don’t apply to global variables. The right solution is to simply import “.py” files.