I think you are being far to pessimistic about the speed of interpreters.
Some interpreters do all the checks you talk about. But good quality
implementations do a lot of compile time work (like type inferencing) to
"move" all these checks from run time to compile time.
graham
-- ------------------------------------------------------ I would gladly die for a man who was looking for the truth, but would just as gladly kill a man who thought he had actually found it -- Voltaire -----------------------------------------------------