да, как в sbcl "только круче", как в typed racket (тоже правильное направление в принципе, но я не силен там в зависимых типах итд, не знаю, может есть косяки в подходе, но то что я видел выглядело неплохо, помимо того, что по-моему там тайпед на весь модуль распространяется, нельзя внутри модуля скрещивать обычный рекет и тайпед) и контракты clojure - тоже гуд, куда-то в этом направлении и надо двигаться