(alter-meta! iref f & args)
Atomically sets the metadata for a namespace/var/ref/agent/atom to be: (apply f its-current-meta args) f must be free of side-effects
(def ^{:version 1} document "This is text")
;;=> #'user/document
(meta #'document)
;;=> {:version 1}
(alter-meta! #'document #(update-in % [:version] inc)) ;increase version
;;=> {:version 2}
(meta #'document) ;metadata of var was changed
;;=> {:version 2}
(alter-meta! #'document update-in [:version] inc) ;same as above but shorter
;;=> {:version 3}
(meta #'document) ;metadata of var was changed again
;;=> {:version 3}