What on Earth is so great about strong typing that I have to have it?
There is nothing so great about strong typing that you have
to have it. That said, it can be wonderfully useful when done, and done correctly (see. Dominus' great article
about strong typing).
If it is done correctly, then if you ever have a type error then something is seriously wrong in your code, period. The reason you might want strong typing in your 'compiler' is to produce faster and slimmer code. The thing executing the strongly typed code will never have to guess whether it's dealing with an float or a double as it will be the right type.
With that said, there aren't a great deal of advantages to the programmer with strongly typed code. They'll never get unexpected results due to mathematical imprecisions between type casts. Subsequently code will execute as you expect it to, not how the thing executing it guesses it should be executed.