Clojurescript, string de leitura e registros

Atualmente em Clojurescript não é possível usar cljs.reader / read-string em registros. O seguinte script não funcionará:

(defrecord Test [a b])
(def a (->Test 1 2))
(cljs.reader/read-string (pr-str a)) ; will not work

Para corrigir isso, você pode registrar um analisador com tags para o leitor:

(defrecord Test [a b])
(cljs.reader/register-tag-parser! "Test" map->Test)
(def a (->Test 1 2))
(cljs.reader/read-string (pr-str a)) ; works!