You're confusing type safety with pattern matching. I know they can be related, but that's not the point. Look at Erlang :P
I really haven't noticed problems while using IDEs, so it mustn't be that hard. Again look at lisps, particularly PLT Scheme. While there may be some while building IDEs...