Some dynamic languages can have type annotations without changing the runtime semantics. Python is in this category and, IIUC, TypeScript is also in this category. Julia is completely the opposite in this aspect because the multiple dispatch is one of the biggest ingredients in the language.
I remember that “type checking/linting” is listed in the Compiler work priorities post. So, I suppose adding something like mypy (a static type checker for Python) is in a long-term plan? If so, it makes me wonder if adding type annotations (assertions) in Julia code base for static type-checking is more challenging.
For example, Yet Another Style Guide For Julia says that:
Dispatch type constraints should be used chiefly for dispatch, not for artificially restricting method signatures to “known” types, or merely for documentation.
It makes sense in Julia but I fond it interesting compared to how the type annotations are discussed in other dynamic languages (“it’s also good for documentations”). Likewise, I imagine that people would not use type constraints just for improving static type checking because it can break others’ code.