Meta Data me fue extremadamente útil para escribir. Estoy hablando no solo de sugerencias de tipo, sino de un sistema de tipo personalizado completo. Más simple ejemplo - Sobrecarga del método de impresión para estructuras (o cualquier otra var):
(defstruct my-struct :foo :bar :baz)
(defn make-my-struct [foo bar baz]
(with-meta (struct-map my-struct :foo foo :bar baz :baz baz)
{:type ::my-struct}))
(defmethod print-method
[my-struct writer]
(print-method ...))
En general, junto con capacidades de validación de Clojure que pueden aumentar la seguridad y, al mismo tiempo, la flexibilidad de su código muchísimo (aunque tomará un poco más de tiempo para hacer la codificación real).
Para obtener más ideas sobre cómo escribir, consulte types-api.