Slightly off topic: Why do we need to explicitly cast at all?
If the language is strongly typed the compiler should know whether the types are compatible and do it for you or refuse to compile.
I suppose my point is that casting was a poorly chosen example because the obvious solution isn't to have a better notation but to have no notation at all and follow Python's lead with duck typing or functional languages and strong type inference.