Is there really a necessary use case? If a type is eventually expected to meet the parameter requirements of a procedure, what is the benefit? You could argue that in a language where all types are compatible with all operators this isn't true. But you can't always write code that's compatible with all trivial types.Working with Python, a lot of times I find myself having to figure out the type anyway.Is it just to make higher level languages more friendly to beginners, until they learn enough to realize data types do exist?