It would take a lot of talent and time to use. It's why I usually push Design-by-Contract and/or runtime checks/tests. Far as new languages, you might find Noether interesting in how it is built in layers that let one trade verification difficulty vs expressiveness as desired.
https://github.com/noether-lang/noether/tree/master/doc/pres...
Among other interesting features. I recommend reading old one then new one.