Ya, I figured this was probably hard to add, though it would be nice.
I'm thinking the type hint could be added at binding time actually. When the value of the var is set, its type is known, the var meta could be updated with it. Though I reckon that might slow down def, which is already responsible for a lot of the slow startup times. Like def could grab the type of the value and update the Var meta with it.
Otherwise if done at compile time, I don't know if we need to worry about alter-var-root. That seems an edge case, and a wrong hint would just fallback on reflection no? But it seems in most cases it would be correct.
Wouldn't def be compiled when it is evaluated, so it doesn't seem possible to change the hello var in-between, or like, if the hello var changes beforehand, it doesn't matter, when we reach def it would just use whatever type hint the latest value of hello has.