The inference part could be solved by allowing `foo as _` - I think we already have type placeholders, so this would just fall out? The part about expected meaning is the real problem. If someone writes `6.0 as int`, they probably don't intend a bitwise reinterpretation.