> Dynamic types mean the constraints are known later.
Don't you mean, constraints are found when the program throws an unexpected exception and leaves you with a largely meaningless stack dump :)
I'd rather have the system tell me "you can't do that" much earlier - at compile time, not run time.
I use python quite a bit, but hate the thought of all those never-exercised control paths, which only occur in the most unusual circumstances - and I know silly problems will show up when those paths do get executed :(