Primitive alias do not work when the meta data is evaluated, for example in the case of def.
In this example, char is interpreted to be the function char rather than the type alias. This is because clojure.lang.Compiler$DefExpr$Parser.parse evaluates the meta data on the symbol.
Instead, this has to be written as
However, when using primitive type hints in-line, they work fine:
Primitive type aliases should be handled consistently.
Googling shows that this seems to be a well-known problem, but I have not found a Jira issue for it.