U++ enforces string typing where possible and not many casts are generally needed.
However, Value type is used to cover many cases where casting would otherwise be needed. (in other words, existence of polymorhic value type replaces/reduces number of casts).