Meta Data è stato estremamente utile per me ai fini della digitazione. Sto parlando non solo di suggerimenti sui tipi, ma del sistema di tipo personalizzato completo. Più semplice esempio - sovraccarico di metodi di stampa per le strutture (o qualsiasi altro 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 ...))
In generale, insieme a capacità di validazione Clojure si può aumentare la sicurezza e, allo stesso tempo, la flessibilità del codice molto molto (anche se ci vorrà un po 'più di tempo per fare la vera codifica).
Per ulteriori idee sulla digitazione, vedere types-api.