user=> (pr-str (seq {:a 1 :b 2}))
"([:a 1] [:b 2])"
user=> (vector? (first (seq {:a 1 :b 2})))
true
It looks like a vector, it quacks like a vector... user=> (pr-str (seq {:a 1 :b 2}))
"([:a 1] [:b 2])"
user=> (vector? (first (seq {:a 1 :b 2})))
true
It looks like a vector, it quacks like a vector... user=> (doc vector?)
-------------------------
clojure.core/vector?
([x])
Return true if x implements IPersistentVector
nil
So `MapEntry` implements `IPersistentVector`, but is not a vector. It does not make sense to have an empty `MapEntry`, so IMHO the behavior implemented is valid.empty mapentry returning nil is meh. If it returned an empty vector it'd be what you want 99% of the time.