Contracts in #Racket rock, you may even have fancy dependent contracts (like in dependent types) 🤗

https://docs.racket-lang.org/guide/contracts-general-functions.html
7.3 Contracts on Functions in General

Compared with ML-family strictly typed languages #haskell and #caml, contracts feel like writing parts of your own typechecker.

Disadvantage: you write your own typechecker.

Advantage: you don't need to write it all the time (gradual typing) and you choose the level of expressiveness as you want.

Feels great for research and prototyping.