I understand that many people say that with static typing if it compiles it works, but I remember using debuggers quite a lot.
I'd say that if one wants types there are plenty of languages to choose from. There is Crystal if one likes Ruby.
Contracts are interesting. I remember Eiffel and other languages. Those could be useful regardless of the kind of typing the language use.
BTW, invariants are another useful tool when designing some algorithms and were neglected recently.