¿Por qué el enlace afecta el tipo de mi mapa?

Estaba jugando en el REPL y tuve un comportamiento extraño:

Clojure 1.4.0
user=> (type {:a 1})
clojure.lang.PersistentArrayMap
user=> (def x {:a 1})
#'user/x
user=> (type x)
clojure.lang.PersistentHashMap

Pensé que todos los pequeños mapas literales eran ejemplos dePersistentArrayMap, pero al parecer ese no es el caso si ha sido atado condef. ¿Por qué usaríadef ¿Por qué Clojure elige una representación diferente para mi mapa pequeño? Sé que es probable que sea solo un extraño detalle de implementación, pero tengo curiosidad.

Respuestas a la pregunta(1)

Su respuesta a la pregunta