Consider:
int x;
What happens here? x = 3.1415; Does x hold the correct value? No. But if x was a scalar, then: x = int( 3.1415 ); says exactly what is happening. Type safety places restrictions on what can be done and programmer have to memorize the rules because they're not natural to his thinking. It's because of all the things that programmers have to memorize that programming is hard. The more things a programmer have to remember, the more bugs he will create. Having to write int() every time he wants an integer: 1. decreases bugs, and 2. makes the code more readable. Types are not natural; they were created to make compiler writing easier. They do not make programming easier, just the opposite. They make programming harder because the force the programmer to remember more things.