Clojure, with its dabbling in schemas and rule systems / logic programming (as a substitute for conditional statements) and thanks to its great tools (like figwheel or devcards), could really be establishing a cheaper, "as-good" alternative to static typing and full formal verification.
Instead of encoding constraints as type signatures, the Clojure folks (true to character) encode them in data. In my eyes a very interesting, pragmatic trade-off between expressiveness and automatic verifiability.
> dabbling in schemas and rule systems / logic programming (as a substitute for conditional statements
That sounds interesting. Could you elaborate or post a link?
core.logic https://github.com/clojure/core.logic core.match https://github.com/clojure/core.match