Some Racket developers argue that cond should require a clause to match: https://docs.racket-lang.org/cond-strict/index.html (a robustness boon, but probably small)
miniblog.
Related Posts
LLMs have been really helpful for me porting some JS projects to TS.
Since the types are erased and annotations are optional, I can go gradually and safely with more minimal human oversight.
(I'm not sure if it'll significantly help robustness, but it's lovely for navigation.)
Type systems can be nominal or structural, they might force an option type, and they might even encode side effects (IO or exceptions).
I think the biggest single improvement (where compiles≈correct) is exhaustiveness checking. This produces thoroughness and often robustness.
The Rust London meetup was excellent. It's funny how many Rustaceans care about robustness: one even used skeptic to test his code slides!